用于不同控制器方法的ASP.NET MVC通用模型
本文关键字:MVC NET 模型 ASP 控制器 方法 用于 | 更新日期: 2023-09-27 18:30:03
我很难理解MVC的行为方式。在我的Controller类中,我创建了一个模型,并将其初始化为主ActionMethod。之后,我调用了另一个控制器方法,结果发现模型为空。为什么?
现在看来,我只能使用它们一次来将数据库信息传递给视图。是否有必要总是修改/查询数据库?我知道在大多数情况下这样做是有意义的,但我想把这些部分分开。
编辑:这里有一些代码:
public class TestController : Controller {
TestModel model;
public ActionResult Index() {
model = new TestModel();
return View(model);
}
public ActionResult OtherMethod {
// Here I would like to access/modify the previously created model, but it is null
return View();
}
}
您应该使用Html助手在视图中绑定模型的属性
或者简单地使用@Html.EditorForModel()助手。它将为整个模型创建UI和绑定
控制器的默认生存期是"每个请求",这意味着在每个HttpRequest上都会创建一个新的TestController实例。
你可以通过创建一个自定义控制器工厂来改变这种行为,但我不建议这样做,我建议你使用TempData集合。
参见http://msdn.microsoft.com/en-us/library/dd394711(v=vs.100).aspx