// Copied this method from Microsoft.Web.Mvc.dll (MVC Futures)... // Microsoft.Web.Mvc.Internal.ExpresisonHelper.AddParameterValuesFromExpressionToDictionary(). // The only change I made is saving the parameter values to TempData instead // of a RouteValueDictionary. private IDictionary<string, object> AddParameterValuesFromExpressionToTempData(TempDataDictionary tempData, MethodCallExpression call) { ParameterInfo[] parameters = call.Method.GetParameters(); var parsedParameters = new Dictionary<string, object>(); if(parameters.Length > 0) { for(int i = 0; i < parameters.Length; i++) { Expression expression = call.Arguments[i]; object obj2 = null; ConstantExpression expression2 = expression as ConstantExpression; if(expression2 != null) { obj2 = expression2.Value; } else { Expression<Func<object>> expression3 = Expression.Lambda<Func<object>>(Expression.Convert(expression, typeof(object)), new ParameterExpression[0]); obj2 = expression3.Compile()(); } tempData[RedirectParameterPrefix + parameters[i].Name] = obj2; parsedParameters.Add(parameters[i].Name, obj2); } } return parsedParameters; }
private void CopyTempDataToModelState(ModelStateDictionary modelState, TempDataDictionary tempData) { if (!tempData.ContainsKey(TempDataKey)) { return; } ModelStateDictionary fromTempData = tempData[TempDataKey] as ModelStateDictionary; if (fromTempData == null) { return; } foreach (KeyValuePair<string, ModelState> pair in fromTempData) { if (modelState.ContainsKey(pair.Key)) { modelState[pair.Key].Value = pair.Value.Value; foreach (ModelError error in pair.Value.Errors) { modelState[pair.Key].Errors.Add(error); } } else { modelState.Add(pair.Key, pair.Value); } } }
private void CopyTempDataToModelState(ModelStateDictionary modelState, TempDataDictionary tempData) { if (!tempData.ContainsKey(TempDataKey)) return; var fromTempData = tempData[TempDataKey] as ModelStateDictionary; if (fromTempData == null) return; foreach (var pair in fromTempData) { if (modelState.ContainsKey(pair.Key)) { modelState[pair.Key].Value = pair.Value.Value; foreach (var error in pair.Value.Errors) { if (!modelState[pair.Key].Errors.Contains(error)) modelState[pair.Key].Errors.Add(error); } } else { modelState.Add(pair.Key, pair.Value); } } }
public static string RenderPartialToString(this Controller controller, string partialView, ViewDataDictionary viewData, TempDataDictionary tempData) { ControllerContext controllerContext = controller.ControllerContext; var viewEngines = ViewEngines.Engines; var viewEngineResult = viewEngines.FindPartialView(controllerContext, partialView + ".js"); ViewContext viewContext = new ViewContext(controllerContext, viewEngineResult.View, viewData, tempData); var response = viewContext.HttpContext.Response; response.Flush(); var oldFilter = response.Filter; Stream filter = null; try { filter = new MemoryStream(); response.Filter = filter; viewContext.View.Render(viewContext, viewContext.HttpContext.Response.Output); response.Flush(); filter.Position = 0; var reader = new StreamReader(filter, response.ContentEncoding); return reader.ReadToEnd(); } finally { if (filter != null) { filter.Dispose(); } response.Filter = oldFilter; } }
public void SetDisplayModeType(ViewDataDictionary viewData, TempDataDictionary tempData, string displayMode, Type displayModeType) { var sut = new ViewModelSummary(viewData, tempData, typeof(ViewModelSummary), true, displayMode, displayModeType); Assert.Equal(displayModeType, sut.DisplayModeType); Assert.True(sut.HasDisplayMode); }
public void SetModelType(ViewDataDictionary viewData, TempDataDictionary tempData, string displayMode, Type displayModeType) { var sut = new ViewModelSummary(viewData, tempData, typeof(ViewModelSummary), true, displayMode, displayModeType); Assert.Equal(true, sut.IsValid); Assert.Equal(typeof(ViewModelSummary), sut.ModelType); }
public void PropertiesAreSet() { // Arrange var mockControllerContext = new Mock<ControllerContext>(); mockControllerContext.Setup(o => o.HttpContext.Items).Returns(new Hashtable()); var view = new Mock<IView>().Object; var viewData = new ViewDataDictionary(); var tempData = new TempDataDictionary(); var writer = new StringWriter(); // Act ViewContext viewContext = new ViewContext(mockControllerContext.Object, view, viewData, tempData, writer); // Setting FormContext to null will return the default one later viewContext.FormContext = null; // Assert Assert.Equal(view, viewContext.View); Assert.Equal(viewData, viewContext.ViewData); Assert.Equal(tempData, viewContext.TempData); Assert.Equal(writer, viewContext.Writer); Assert.False(viewContext.UnobtrusiveJavaScriptEnabled); // Unobtrusive JavaScript should be off by default Assert.NotNull(viewContext.FormContext); // We get the default FormContext Assert.Equal("span", viewContext.ValidationSummaryMessageElement); // gen a <span/> by default Assert.Equal("span", viewContext.ValidationMessageElement); // gen a <span/> by default }
private static ControllerContext GetControllerContext(TempDataDictionary tempData) { return new ControllerContext() { Controller = new EmptyController() { TempData = tempData } }; }
public ViewContext(ControllerContext controllerContext, IView view, ViewDataDictionary viewData, TempDataDictionary tempData) : base(controllerContext) { if (controllerContext == null) { throw new ArgumentNullException("controllerContext"); } if (view == null) { throw new ArgumentNullException("view"); } if (viewData == null) { throw new ArgumentNullException("viewData"); } if (tempData == null) { throw new ArgumentNullException("tempData"); } View = view; ViewData = viewData; TempData = tempData; // propagate FormContext, e.g. inside a template ViewContext originalViewContext = controllerContext as ViewContext; if (originalViewContext != null) { FormContext = originalViewContext.FormContext; } }
public void GuardClauses() { // Arrange var controllerContext = new Mock<ControllerContext>().Object; var view = new Mock<IView>().Object; var viewData = new ViewDataDictionary(); var tempData = new TempDataDictionary(); var writer = new StringWriter(); // Act & Assert Assert.ThrowsArgumentNull( () => new ViewContext(null, view, viewData, tempData, writer), "controllerContext" ); Assert.ThrowsArgumentNull( () => new ViewContext(controllerContext, null, viewData, tempData, writer), "view" ); Assert.ThrowsArgumentNull( () => new ViewContext(controllerContext, view, null, tempData, writer), "viewData" ); Assert.ThrowsArgumentNull( () => new ViewContext(controllerContext, view, viewData, null, writer), "tempData" ); Assert.ThrowsArgumentNull( () => new ViewContext(controllerContext, view, viewData, tempData, null), "writer" ); }
public ActionResult Error( TempDataDictionary data ) { List<ModelError> errorList = TempData["errors"] as List<ModelError>; ViewBag.Title = "Something went wrong"; return View( errorList ); }
public static string GetViewHtml(string partialViewName, object model) { //Fake a context var context = new ControllerContext(); context.RouteData = HttpContext.Current.Request.RequestContext.RouteData; context.RequestContext = HttpContext.Current.Request.RequestContext; ViewEngineResult result = ViewEngines.Engines.FindPartialView(context, partialViewName); // Try a regular view if partial not found if (result.View == null) { result = ViewEngines.Engines.FindView(context, partialViewName, "_layout"); } var viewData = new ViewDataDictionary(model); var tempData = new TempDataDictionary(); if (result.View != null) { var sb = new StringBuilder(); using (var sw = new StringWriter(sb)) { using (var output = new HtmlTextWriter(sw)) { var viewContext = new ViewContext(context, result.View, viewData, tempData, output); result.View.Render(viewContext, output); } } return sb.ToString(); } return String.Empty; }
/// <summary> /// Renders a partial view to a string in the specified context. /// </summary> /// <param name="partialViewContext">The partial view context.</param> /// <param name="viewModel">The view model.</param> /// <param name="cookies">Any cookies that were captures as part of the response.</param> /// <returns>The view rendered as a string.</returns> public static string ToString(PartialViewContext partialViewContext, object viewModel, out HttpCookieCollection cookies) { string viewName = partialViewContext.ViewName; using (var writer = new StringWriter()) { var httpRequest = new HttpRequest("", "http://www.example.com", ""); var httpResponse = new HttpResponse(writer); // There are still dependencies on HttpContext.Currrent in the ASP.NET (MVC) framework, eg., AntiForgeryRequestToken (as of ASP.NET MVC 4). var httpContext = new HttpContext(httpRequest, httpResponse) { User = partialViewContext.User }; System.Web.HttpContext.Current = httpContext; var controllerContext = CreateControllerContext(httpContext); var viewEngineResult = ViewEngines.Engines.FindPartialView(controllerContext, viewName); if (viewEngineResult == null) { string message = "The partial view was not found."; throw new ArgumentException(message, viewName); } var view = viewEngineResult.View; if (view == null) { var locations = new StringBuilder(); foreach (string searchedLocation in viewEngineResult.SearchedLocations) { locations.AppendLine(); locations.Append(searchedLocation); } throw new ArgumentException("The partial view was not found. The following locations were searched: " + locations, viewName); } try { var viewData = new ViewDataDictionary(viewModel); var tempData = new TempDataDictionary(); var viewContext = new ViewContextStub(controllerContext, view, viewData, tempData, writer) { ClientValidationEnabled = partialViewContext.ClientValidationEnabled, UnobtrusiveJavaScriptEnabled = partialViewContext.UnobtrusiveJavaScriptEnabled }; view.Render(viewContext, httpResponse.Output); cookies = controllerContext.HttpContext.Response.Cookies; httpResponse.Flush(); } finally { viewEngineResult.ViewEngine.ReleaseView(controllerContext, view); } return writer.ToString(); } }
public ViewContext(ControllerContext context, IView view, ViewDataDictionary viewData, TempDataDictionary tempData) : this(ViewContext.GetControllerContext(context).Context, GetControllerContext(context).RouteData, GetControllerContext(context).Controller, view, viewData, tempData) { }
public void Keep_DoesNotThrowException_WhenDataIsNotLoaded() { // Arrange var tempData = new TempDataDictionary(GetHttpContextAccessor(), new SessionStateTempDataProvider()); // Act & Assert tempData.Keep(); }
protected string PartialViewHtml(string partialViewName, object model, ViewDataDictionary viewData) { var data = new ViewDataDictionary(viewData) {Model = model}; var tempData = new TempDataDictionary(); return RenderPartialToString(this.ControllerContext, partialViewName, data, tempData); }
public void TempDataProperty() { // Arrange TempDataDictionary newDict = new TempDataDictionary(); ViewResultBaseHelper result = new ViewResultBaseHelper(); // Act & Assert MemberHelper.TestPropertyWithDefaultInstance(result, "TempData", newDict); }
public Notifications(TempDataDictionary tempDataDictionary) { if (!tempDataDictionary.ContainsKey(DictionaryName)) { tempDataDictionary[DictionaryName] = new List<Notification>(); } _notifications = tempDataDictionary[DictionaryName] as IList<Notification>; }
/// <summary> /// Initializes a new instance of the <see cref="FlashStorage"/> class. /// </summary> /// <param name="backingStore">The backing store.</param> public FlashStorage(TempDataDictionary backingStore) { if (backingStore == null) { throw new ArgumentNullException("backingStore"); } BackingStore = backingStore; }
private static void AddMessage(TempDataDictionary tempData, AlertType type, string message, AlertLocation location) { var alertData = tempData.InitializeAlertData(); alertData[location][type].Add(message); tempData["AlertData"] = alertData; }
public void GetFlashMessages_returns_a_collection() { TempDataDictionary tempData = new TempDataDictionary(); var original = new FlashMessageCollection(tempData); original.Add(new FlashMessage("info", "Hello, World!")); var flashMessages = tempData.GetFlashMessages(); Assert.AreEqual(1, flashMessages.Count()); }
public ViewContext(HttpContextBase context, RouteData routeData, ControllerBase controller, IView view, ViewDataDictionary viewData, TempDataDictionary tempData) : base(context, routeData, controller) { _view = view; _viewData = viewData; _tempData = tempData; }
public static string RenderExtPartial(this HtmlHelper htmlHelper, string partialViewName, ViewDataDictionary viewData, object model, TempDataDictionary tempData, IDMode idMode, string id) { if (String.IsNullOrEmpty(partialViewName)) { throw new ArgumentException("Value cannot be null or empty.", "partialViewName"); } return new PartialViewRenderer().Render(htmlHelper.ViewContext, partialViewName, viewData, model, tempData, idMode, id); }
public void SetUp() { tempData = new TempDataDictionary(); viewContext = new ViewContext(); viewContext.TempData = tempData; viewDataContainer = new Mock<IViewDataContainer>(); htmlHelper = new HtmlHelper(viewContext, viewDataContainer.Object); flashStorage = new FlashStorage(tempData); }
public void ReturnTempDataKeys(ViewDataDictionary viewData, string displayMode, Type displayModeType) { var tempData = new TempDataDictionary { { "A", 1 }, { "B", 2 }, { "C", 3 } }; var sut = new ViewModelSummary(viewData, tempData, typeof(ViewModelSummary), true, displayMode, displayModeType); Assert.Contains("A", sut.TempDataKeys); Assert.Contains("B", sut.TempDataKeys); Assert.Contains("C", sut.TempDataKeys); }
public void WriteResponse(ControllerContext controllerContext, object content, string viewName) { var viewEngineResult = ViewEngines.Engines.FindView(controllerContext, viewName, null); var textWriter = controllerContext.HttpContext.Response.Output; var view = viewEngineResult.View; var viewData = new ViewDataDictionary {Model = content}; var tempData = new TempDataDictionary(); var viewContext = new ViewContext(controllerContext, view, viewData, tempData, textWriter); view.Render(viewContext, textWriter); }
/// <summary> /// Checks if the specified key is present in the MVC TempData dictionary. /// </summary> /// <param name="key">The key to search for.</param> /// <param name="tempData">The dictionary to search in.</param> /// <returns>True if the specified value is present. Otherwise, false.</returns> private static bool CheckIfKeyIsPresentInTempData( string key, TempDataDictionary tempData ) { object tempDataValue; tempData.TryGetValue( key, out tempDataValue ); if( tempDataValue == null ) return false; if( (bool)tempDataValue == false ) return false; return true; }
public TestViewContext(ControllerContext controllerContext, string viewName, RouteData routeData) { WriterOutput = new StringBuilder(); Controller = controllerContext.Controller; View = new RazorView(controllerContext, viewName, "Layout", false, new string[] { }); ViewData = new ViewDataDictionary(); TempData = new TempDataDictionary(); Writer = new StringWriter(WriterOutput); RouteData = routeData; }
public void ThrowscdException_OnSettingValue_AndWhenSessionIsNotEnabled() { // Arrange var tempData = new TempDataDictionary(GetHttpContextAccessor(), new SessionStateTempDataProvider()); // Act & Assert Assert.Throws<InvalidOperationException>(() => { tempData["key1"] = "value1"; }); }
public void TempData_Load_CreatesEmptyDictionaryIfProviderReturnsNull() { // Arrange var tempData = new TempDataDictionary(GetHttpContextAccessor(), new NullTempDataProvider()); // Act tempData.Load(); // Assert Assert.Empty(tempData); }
private static void SetMessage(string index, string message, TempDataDictionary tempData) { tempData[index] = message; }
/* * public static string RenderPartialToString(string controlName, object model) * { * var vp = new ViewPage { ViewData = new ViewDataDictionary(model) }; * * var control = vp.LoadControl(controlName); * * vp.Controls.Add(control); * * var sb = new StringBuilder(); * * using (var sw = new StringWriter(sb)) * { * using (var tw = new HtmlTextWriter(sw)) * { * vp.RenderControl(tw); * } * } * * return sb.ToString(); * } */ public static string RenderPartialToString(ControllerContext context, string partialViewName, ViewDataDictionary viewData, TempDataDictionary tempData) { //var result = ViewEngines.Engines.FindPartialView(context, "~/Plugins/IUDICO.CourseManagment.dll/IUDICO.CourseManagment/Views/Shared/" + partialViewName +".ascx"); var result = ViewEngines.Engines.FindPartialView(context, partialViewName); if (result.View != null) { var sb = new StringBuilder(); using (var sw = new StringWriter(sb)) { using (var output = new HtmlTextWriter(sw)) { var viewContext = new ViewContext(context, result.View, viewData, tempData, output); result.View.Render(viewContext, output); } } return(sb.ToString()); } return(string.Empty); }
public static void Put <T>(this TempDataDictionary tempData, string key, T value) where T : class => tempData[key] = JsonConvert.SerializeObject(value);
public static string GetErrorMessage(this TempDataDictionary tempData) { return((string)tempData[ErrorKey]); }
public AuthenticationTempData(TempDataDictionary tempData) { _tempData = tempData; }
public FlashStorage(TempDataDictionary backingStore) { Check.Require(backingStore != null, "backing store for Flash storage cannot be null", new ArgumentNullException("backingStore")); _backingStore = backingStore; }
public HseqRecord PopulateLinkedRecordDefaults(String recordSource, HseqRecord linkedRecord, HseqRecord ncr, TempDataDictionary TempData) { ncr.HseqRecordID = linkedRecord.HseqRecordID; ncr.EnteredBy = linkedRecord.EnteredBy; ncr.ReportedBy = linkedRecord.ReportedBy; //ncr.QualityCoordinator = linkedRecord.QualityCoordinator; TempData["recordId"] = linkedRecord.HseqRecordID; TempData["recordSource"] = recordSource; linkedRecord.LinkedRecords.Add(ncr); return(ncr); }
public static void AddErrorMessage(this TempDataDictionary tempData, string message) { tempData["ErrorMessage"] = message; }
//Function Handles Exception and Logs to Logging Media if Logging is Enabled #region Handle Exception And Log public override void OnException(ExceptionContext filterContext) { if (filterContext.ExceptionHandled || !filterContext.HttpContext.IsCustomErrorEnabled) { return; } if (new HttpException(null, filterContext.Exception).GetHttpCode() != 500) { return; } if (!ExceptionType.IsInstanceOfType(filterContext.Exception)) { return; } FSCErrorInfo objErrorInfo = null; // if the request is AJAX return JSON else view. if (filterContext.HttpContext.Request.Headers["X-Requested-With"] == "XMLHttpRequest") { filterContext.Result = new JsonResult { JsonRequestBehavior = JsonRequestBehavior.AllowGet, Data = new { error = true, message = filterContext.Exception.Message } }; } else { if (filterContext.Exception is HttpAntiForgeryException && filterContext.Exception.Message.ToLower().StartsWith("the provided anti-forgery token was meant for user \"\", but the current user is")) { var controllerName = (string)filterContext.RouteData.Values["controller"]; var actionName = (string)filterContext.RouteData.Values["action"]; var model = new FSCErrorInfo(filterContext.Exception, controllerName, actionName); model.ErrorDate = System.DateTime.Now.ToString("yyyy-mm-dd HH:mm:ss"); model.UserCode = FSCSecurity.GetUserIdentity(); model.IpAdd = FSCSecurity.GetIPAddress(); objErrorInfo = model; var isAjaxCall = string.Equals("XMLHttpRequest", filterContext.HttpContext.Request.Headers["x-requested-with"], StringComparison.OrdinalIgnoreCase); var returnUrl = !string.IsNullOrWhiteSpace(filterContext.HttpContext.Request["returnUrl"]) ? filterContext.HttpContext.Request["returnUrl"] : "/"; var response = HttpContext.Current.Response; if (isAjaxCall) { response.Clear(); response.StatusCode = 200; response.ContentType = "application/json; charset=utf-8"; response.Write(JsonConvert.SerializeObject(new { success = 1, returnUrl = returnUrl })); response.End(); } else { response.StatusCode = 200; response.Redirect(returnUrl); } } else { var controllerName = (string)filterContext.RouteData.Values["controller"]; var actionName = (string)filterContext.RouteData.Values["action"]; var model = new FSCErrorInfo(filterContext.Exception, controllerName, actionName); model.ErrorDate = System.DateTime.Now.ToString("yyyy-mm-dd HH:mm:ss"); model.UserCode = FSCSecurity.GetUserIdentity(); model.IpAdd = FSCSecurity.GetIPAddress(); objErrorInfo = model; TempDataDictionary objDataDictionary = new TempDataDictionary(); ViewDataDictionary data = filterContext.Controller.ViewData; foreach (string str in data.Keys) { objDataDictionary.Add(str, data[str]); } filterContext.Result = new ViewResult { ViewName = View, MasterName = Master, ViewData = new ViewDataDictionary <FSCErrorInfo>(model), TempData = objDataDictionary }; filterContext.ExceptionHandled = true; filterContext.HttpContext.Response.Clear(); filterContext.HttpContext.Response.StatusCode = 500; filterContext.HttpContext.Response.TrySkipIisCustomErrors = true; } } if (Convert.ToBoolean(ConfigurationManager.AppSettings["LogErrors"])) { if (objErrorInfo != null) { new FSC_ErrorLog().LogError(new ErrorLogType(), objErrorInfo.ControllerName, objErrorInfo.ActionName, objErrorInfo.Exception.GetType().FullName, objErrorInfo.Exception.Message , objErrorInfo.ErrorDate, objErrorInfo.UserCode, objErrorInfo.IpAdd); } else { new FSC_ErrorLog().LogError(new ErrorLogType(), filterContext.Controller.ToString(), filterContext.Exception.GetType().FullName, filterContext.Exception.Message , System.DateTime.Now.ToString("yyyy-mm-dd HH:mm:ss"), FSCSecurity.GetUserIdentity(), FSCSecurity.GetIPAddress()); } } }
public static void AddSuccessMessage(this TempDataDictionary tempData, string message) { tempData["SuccessMessage"] = message; }
public static bool ContainsKeyFor <T>(this TempDataDictionary tempData) { return(tempData.ContainsKey(typeof(T).ToGenericTypeString())); }
private static void RemoveMessage(string index, TempDataDictionary tempData) { tempData.Remove(index); }
public static void Put <T>(this TempDataDictionary tempData, T value) { tempData[typeof(T).ToGenericTypeString()] = value; }
public static string RenderPartialToString(Controller controller, string partialViewName, object model, ViewDataDictionary viewData, TempDataDictionary tempData) { ViewEngineResult result = ViewEngines.Engines.FindPartialView(controller.ControllerContext, partialViewName); if (result.View != null) { controller.ViewData.Model = model; StringBuilder sb = new StringBuilder(); using (StringWriter sw = new StringWriter(sb)) { using (HtmlTextWriter output = new HtmlTextWriter(sw)) { ViewContext viewContext = new ViewContext(controller.ControllerContext, result.View, viewData, tempData, output); result.View.Render(viewContext, output); } } return(sb.ToString()); } return(String.Empty); }
public static void SetFlag(this TempDataDictionary tempData, string key) { tempData[key] = true; }
public static void AddSuccessMessage(this TempDataDictionary tempData, string message) { tempData[WebConstants.TempDataSuccessMessageKey] = message; }
public static void SetErrorMessage(this TempDataDictionary tempData, string message) { tempData[ErrorKey] = message; }
private async Task RenderToStringAsync(TextWriter writer, string templateName, object model, bool mainPage, bool partial, bool readOnly, object additionalViewData) { var httpContext = _httpContextAccessor.HttpContext ?? new DefaultHttpContext { RequestServices = _serviceProvider }; var actionContext = new ActionContext(httpContext, new RouteData(), new ActionDescriptor()); var newViewData = new ViewDataDictionary <object>(_modelMetadataProvider, new ModelStateDictionary()) { Model = model }; var newTempData = new TempDataDictionary(actionContext.HttpContext, _tempDataProvider); if (mainPage || partial) { var result = _viewEngine.GetView(executingFilePath: null, viewPath: templateName, isMainPage: mainPage); if (!result.Success) { result = _viewEngine.FindView(actionContext, templateName, isMainPage: mainPage); } if (!result.Success) { throw new Exception($"A view with the name {templateName} could not be found"); } var viewContext = new ViewContext(actionContext, result.View, newViewData, newTempData, writer, ViewOptions.HtmlHelperOptions) { ExecutingFilePath = null }; await viewContext.View.RenderAsync(viewContext); //Automatically writes out } else { var viewContext = new ViewContext() { ExecutingFilePath = null, View = null, ViewData = newViewData, TempData = newTempData, Writer = writer, FormContext = new FormContext(), ClientValidationEnabled = ViewOptions.HtmlHelperOptions.ClientValidationEnabled, Html5DateRenderingMode = ViewOptions.HtmlHelperOptions.Html5DateRenderingMode, ValidationSummaryMessageElement = ViewOptions.HtmlHelperOptions.ValidationSummaryMessageElement, ValidationMessageElement = ViewOptions.HtmlHelperOptions.ValidationMessageElement, ActionDescriptor = actionContext.ActionDescriptor, HttpContext = actionContext.HttpContext, RouteData = actionContext.RouteData }; var htmlHelper = MakeHtmlHelper(viewContext, newViewData); if (readOnly) { //var htmlContent = htmlHelper.DisplayForModel(additionalViewData); var htmlContent = htmlHelper.Display(null, templateName, null, additionalViewData); htmlContent.WriteTo(writer, HtmlEncoder.Default); } else { //var htmlContent = htmlHelper.EditorForModel(additionalViewData); var htmlContent = htmlHelper.Editor(null, templateName, null, additionalViewData); htmlContent.WriteTo(writer, HtmlEncoder.Default); } } }
public static void AddWarningMessage(this TempDataDictionary tempData, string message) { tempData.Add(GlobalConstants.WariningMessage, message); }
/// <summary> /// Takes the given view and turns the output into a string to be used with Razor, partialviews and Json. /// </summary> /// <param name="context"></param> /// <param name="viewData"></param> /// <param name="tempData"></param> /// <param name="viewName"></param> /// <param name="model"></param> /// <returns></returns> public static string RenderRazorViewToString(ControllerContext context, ViewDataDictionary viewData, TempDataDictionary tempData, string viewName, object model) { viewData.Model = model; using (var sw = new StringWriter()) { var viewResult = ViewEngines.Engines.FindPartialView(context, viewName); var viewContext = new ViewContext(context, viewResult.View, viewData, tempData, sw); viewResult.View.Render(viewContext, sw); viewResult.ViewEngine.ReleaseView(context, viewResult.View); return(sw.GetStringBuilder().ToString()); } }
public void Compute_Given_Request_Has_Not_Been_Made_Before_Returns_Object_From_Database( string cashFlowDescription , double increment , double upperBoundDiscountRate , double lowerBoundDiscountRate , double initialCost , string expectedNPVs ) { var npvModel = new NPVModel { CashFlowsDescription = cashFlowDescription , Increment = increment , InitialCost = initialCost , LowerBoundDiscountRate = lowerBoundDiscountRate , UpperBoundDiscountRate = upperBoundDiscountRate }; var listOfExpectedNPVs = expectedNPVs.Split(",").Select(n => double.Parse(n)).ToList(); var listOfNPVDetailModel = new List <NPVDetailModel>(); var discountRate = lowerBoundDiscountRate; for (var i = 0; i < listOfExpectedNPVs.Count; i++) { listOfNPVDetailModel.Add(new NPVDetailModel { CashFlowSummary = cashFlowDescription , DiscountRate = discountRate , InitialCost = initialCost , NPV = listOfExpectedNPVs[i] }); discountRate += increment; } var listOfNPVDetailModelStr = JsonConvert.SerializeObject(listOfNPVDetailModel); _httpServiceMock.Setup(h => h.GetAsJson <NPVRequestModel>(It.IsAny <string>(), It.IsAny <NPVRequestModel>())) .ReturnsAsync(string.Empty); _httpServiceMock.Setup(h => h.PostAsyncReturnAsJson(It.IsAny <string>(), It.IsAny <NPVRequestModel>())) .ReturnsAsync(listOfNPVDetailModelStr); _configurationMock.SetupGet(c => c[It.IsAny <string>()]).Returns("http://localhost:63620/api/npv"); var httpContext = new DefaultHttpContext(); var tempData = new TempDataDictionary(httpContext, Mock.Of <ITempDataProvider>()); var controller = new VRTestWeb.Razor.Controllers.NPVController( _configurationMock.Object , _httpServiceMock.Object ) { TempData = tempData }; var response = controller.Compute(npvModel).Result; var redirectToActionResult = response as RedirectToActionResult; Assert.IsNotNull(redirectToActionResult); Assert.AreEqual("Index", redirectToActionResult.ActionName); _httpServiceMock.VerifyAll(); _configurationMock.VerifyAll(); }
/// <summary> /// /// </summary> /// <param name="htmlHelper"></param> /// <param name="partialViewName"></param> /// <param name="viewData"></param> /// <param name="model"></param> /// <param name="tempData"></param> /// <param name="idMode"></param> /// <param name="id"></param> /// <returns></returns> public static string RenderExtPartial(this HtmlHelper htmlHelper, string partialViewName, ViewDataDictionary viewData, object model, TempDataDictionary tempData, IDMode idMode, string id) { if (String.IsNullOrEmpty(partialViewName)) { throw new ArgumentException("Value cannot be null or empty.", "partialViewName"); } return(new PartialViewRenderer().Render(htmlHelper.ViewContext, partialViewName, viewData, model, tempData, idMode, id)); }
public static T Get <T>(this TempDataDictionary tempData, string key) where T : class => tempData.TryGetValue(key, out var o) ? JsonConvert.DeserializeObject <T>((string)o) : null;
public string RenderViewToString(ControllerContext context, string viewName, object model, TempDataDictionary tempData) { if (string.IsNullOrEmpty(viewName)) { viewName = context.RouteData.GetRequiredString("action"); } ViewDataDictionary viewData = new ViewDataDictionary(model); using (StringWriter sw = new StringWriter()) { ViewEngineResult viewResult = ViewEngines.Engines.FindPartialView(context, viewName); ViewContext viewContext = new ViewContext(context, viewResult.View, viewData, tempData, sw); viewResult.View.Render(viewContext, sw); return(sw.GetStringBuilder().ToString()); } }
public TempDataWrapper(TempDataDictionary tempData) { Handle = Guid.NewGuid(); TempData = tempData; }
public static void AddDangerMessage(this TempDataDictionary tempData, string message) { tempData.Add(GlobalConstants.DangerMessage, message); }
public static void SetErrorForDisplay(TempDataDictionary tempData, string errorMessage) { SetMessage(StatusErrorIndex, errorMessage, tempData); }
public static bool GetFlag(this TempDataDictionary tempData, string key) { return(tempData.ContainsKey(key)); }
public static void Put <T>(this TempDataDictionary tempData, string key, T value) { tempData[key] = value; }
public static void Keep <T>(this TempDataDictionary tempData) { tempData.Keep(typeof(T).ToGenericTypeString()); }