- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在编辑一个项目,我在一个 Controller 方法中看到了 Session[""],在另一个 Controller 方法中看到了 TempData[""]。这 4 种方法之间有区别吗?或者只是 4 种方法来做同样的事情。
最佳答案
动态
包装器。 示例:
public ActionResult Index()
{
ViewData["foo"] = "bar";
return View();
}
在 View 中您可以使用这个值:
<div>@ViewData["foo"]</div>
与 ViewBag 相同,但它是动态的:
public ActionResult Index()
{
ViewBag.foo = "bar";
return View();
}
在 View 中您可以使用这个值:
<div>@ViewBag.foo</div>
正如您所看到的,与使用 View 模型的经典和推荐方法相比,ViewData/ViewBag 只是从 Controller 操作将信息传递到 View 的另一种方法:
public class MyViewModel
{
public string Foo { get; set; }
}
然后:
public ActionResult Index()
{
var model = new MyViewModel { Foo = "bar" };
return View(model);
}
在你的强类型 View 中:
@model MyViewModel
<div>@Html.DisplayFor(x => x.Foo)</div>
正如您所看到的,使用 View 模型提供了一种强类型方法,可以将信息从 Controller 操作传递到 View 。
示例:
public ActionResult Foo()
{
TempData["foo"] = "bar";
return RedirectToAction("bar");
}
public ActionResult Bar()
{
var value = TempData["foo"] as string;
// use the value here. If you need to pass it to the view you could
// use ViewData/ViewBag (I can't believe I said that but I will leave it for the moment)
return View();
}
一旦您读取了 TempData
中存储的值,ASP.NET MVC 就会自动使其过期。在幕后,ASP.NET MVC 将信息保存到 Session
中。
关于asp.net-mvc - ViewData、ViewBag、Session、TempData 什么时间合适,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12676924/
为什么在 TempData 中添加很多项时 TempData 总是 null? 我在 Controller 中的代码: TempData[Partial1.TempDataKey] = "bla bl
我在某些 View /操作中使用了 TempData,但我想将其提取到某个类中。问题是如果我尝试在 Controller 的构造函数中创建我的类,那里的 TempDate 为 null。更好的是,我想
我问这个question昨天。 我相信我已经在使用 TempData 中找到了答案。我的新问题是通过操作(如在向导步骤中)沿着 TempData 串接是否会“保留”所有先前的 TempData,或者我
我想访问 临时数据 在我的助手中获取闪现消息(如在 ruby 中) 我收到一个运行时错误 The name 'TempData' does not exist in the current con
我有一个 Controller 将逻辑寻找: session 值 //checks value null etc.. for existing record in session memory.
有一个similar question多年前关于旧的 ASP.NET。我想知道 .NET Core 是否有所不同。 在链接的问题中,它指出 TempData 存储在 Session 中,默认情况下它与
Mt textbook 说 TempData 一直存在直到它被读取,这意味着它会在读取后被销毁,但我确实在这样的 View 中看到了一些代码: @if (TempData["message"] !=
我正在尝试将一些值从一个 Controller 传递到另一个 Controller ,例如 TempData["data"]="data"; 但它说 Tempdata 在当前上下文中不存在。所以我决定
我有一个具有以下操作的 Controller : [HttpGet] public IActionResult Index() { return View(); } [HttpPost] [R
如何在 asp.net mvc 中清除特定的 TempData。我使用了两个以上的 TempData 变量。我可以清除其中的特定一些。 TempData["USD"] = "updated"; Tem
我正在开发一个 ASP.NET MVC 3 Web 应用程序,在用户未登录的情况下,我使用 TempData 存储模型对象。 流程如下: 使用提交表单。 代码(特殊操作过滤器)将模型添加到 TempD
我有一个类似于下面的 Controller 操作,TempData 由我的框架初始化。我注意到 TempData 在读取后不会清除该值,如操作“EmployeeUnderAge”中所示。 TempDa
我想在重定向中保持状态并且想在重定向中保持一些状态。我认为 MVC 中的 TempData 会在 Rails 中执行此操作并闪烁消息。 ServiceStack 中的任何等效功能。我想在自己组装之前先
有人可以解释一下MVC中TempData的目的。 我了解它的行为类似于ViewBag,但除此之外,它还能做什么。 最佳答案 TempData is meant to be a very short-l
我有一些奇怪的事情。我的 MVC4 项目在转换 TempData 中模型对象的内容时遇到问题。我可以使用监 window 口看到该对象在 TempData 中正确定义,但转换失败,不会引发任何异常。
关于应该在 TempData 字典中放置多少数据,是否有上限或最佳实践? 最佳答案 查看这篇描述使用 TempData 时最佳实践的帖子: When to use ViewBag, ViewData,
我想将两个值从后操作返回到 RedirectToAction 中的 View 。 TempData[] 似乎是理想的选择,因为数据仅用于在用户保存后显示成功消息。 我想在成功消息中显示用户刚刚保存的图
在 MVC 应用程序中,我想获取外部 .js 文件中的 ViewBag、ViewData、TempData 值。我不想在 view.cshtml 中编写脚本,所以我向其中添加了外部 js 文件。但我无
我在 controller_method 的 TempData 中保存了一些值。但是当我在 view 中访问它时,我什么也得不到... Controller 代码: public ActionResu
我正在从 Controller 发送两个值,保存在 TempData 中。但由于某些语法错误,无法在我的 View 中比较它们。代码: @{ var i = TempData
我是一名优秀的程序员,十分优秀!