用于不同控制器方法的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();
   }
}

用于不同控制器方法的ASP.NET MVC通用模型

您应该使用Html助手在视图中绑定模型的属性

或者简单地使用@Html.EditorForModel()助手。它将为整个模型创建UI和绑定

控制器的默认生存期是"每个请求",这意味着在每个HttpRequest上都会创建一个新的TestController实例。

你可以通过创建一个自定义控制器工厂来改变这种行为,但我不建议这样做,我建议你使用TempData集合。

参见http://msdn.microsoft.com/en-us/library/dd394711(v=vs.100).aspx