Tag: tempdata

将对象数组作为TempData 传递给视图

我想将一个post操作中的两个值返回到RedirectToAction的视图。 TempData[]似乎是理想的选项,因为数据仅用于在用户保存后显示成功消息。 我想在成功消息中显示用户刚刚保存的图像的小缩略图和已保存项目的标题。 目前我将所有数据作为new MvcHtmlString TempData[“SaveMsg”] = new MvcHtmlString(” ” + model.Name + ” has been saved. ” ) ; 我想把它作为object[]发送object[] TempData[“SaveMsg”] = new object[]{model.ImageUrl , model.Name} 然后我就可以将对象传递给HtmlHelper并编写消息显示的条件。 我只是不知道如何访问视图中的对象 @TempData[“SaveMsg”][0] // (Oo) // Error Cannot apply indexing with // [] to an expression of type ‘object’ 这有可能吗?

ASP.NET MVC 3自定义操作filter – 如何将传入模型添加到TempData?

我正在尝试构建一个自定义动作filter,它将传入的模型从filter上下文中删除,将其添加到tempdata,然后执行“其他内容”。 我的动作方法如下所示: [HttpPost] [MyCustomAttribute] public ActionResult Create(MyViewModel model) { // snip for brevity… } 现在,我希望在模型绑定启动后将模型添加到TempData ,并将表单值集合转换为MyViewModel 。 我怎么做? public override void OnActionExecuting(ActionExecutingContext filterContext) { if (!filterContext.Controller.ViewData.ModelState.IsValid) return; var model = filterContext.????; // how do i get the model-bounded object? filterContext.TempData.Add(someKey, model); }

我应该通过RedirectToAction还是TempData传递值?

我已经看到一些文章(甚至MSDN)建议TempData在ActionMethods之间传递数据。 但我在这里看到其他人说TempData应该避免。 采用这种方法的最佳实践方法是什么? 这是一些显示我的情况的代码。 注意:我100%肯定,我做错了。 这就是我在这里的原因。 :)此外,我一直在做Webforms直到最近。 注2: 这是相关的,但不一样。 视图: @using (Html.BeginForm(“Previous”, “Home”, new {month = @month}, FormMethod.Post)) { } // This fails but that’s another situation @using (Html.BeginForm(“Next”, “Home”, new {month = @month, year = @year}, FormMethod.Post)) { } 控制器方法: [HttpPost] public ActionResult Previous(HTMLMVCCalendar.Models.MonthModel prevMonth) { Calendar monthEventsCal = new Calendar(); int month = […]

MVC C#TempData

有人可以在MVC中解释TempData的用途。 我知道它的行为与ViewBag相似,但除此之外还有什么作用。

c#在PHP中等效的TempData

我知道我可以手动显式设置和取消设置会话,但我相信这是值得问的。 在c#中,有一个名为TempData的字典,它存储数据直到第一个请求。 换句话说,当调用TempData时,它会自动取消设置。 为了更好地理解这里是一个例子: Controller1.cs: TempData[“data”] = “This is a stored data”; Model1.cs: string dst1 = TempData[“data”]; // This is a stored data string dst2 = TempData[“data”]; // This string will be empty, if an exception is not raised (I can’t remember well if an exception is raised) 所以基本上,这只是一个仅供1次使用的会话。 再次,我知道我可以在php中显式设置和取消设置,但是,php是否还有像这样的function?

将复杂对象存储在TempData中

我一直试图通过使用TempData重定向后将数据传递给一个动作,如下所示: if (!ModelState.IsValid) { TempData[“ErrorMessages”] = ModelState; return RedirectToAction(“Product”, “ProductDetails”, new { code = model.ProductCode }); } 但不幸的是,它失败了以下消息: ‘ System.InvalidOperationException : Microsoft.AspNet.Mvc.SessionStateTempDataProvider’无法将类型为’ModelStateDictionary’的对象序列化为会话状态。 我在Github的MVC项目中发现了一个问题,但是虽然它解释了为什么我收到这个错误,但我看不出什么是可行的替代方案。 一种选择是将对象序列化为json字符串,然后将其反序列化并重新构建ModelState 。 这是最好的方法吗? 我需要考虑哪些潜在的性能问题? 最后,是否有任何替代方法可以序列化复杂对象或使用其他不涉及使用TempData ?