我很难理解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();
}
}
答案 0 :(得分:0)
您应该使用Html helpers在视图中绑定模型的属性
或者只是使用@ Html.EditorForModel()帮助器。它将为整个模型创建UI和绑定
答案 1 :(得分:-1)
控制器的默认生命周期是“每个请求”,这意味着在每个HttpRequest上都会创建一个新的TestController实例。
您可以通过创建自定义控制器工厂来更改此行为,但我不建议这样做,我建议您使用TempData集合。
请参阅http://msdn.microsoft.com/en-us/library/dd394711(v=vs.100).aspx