我試圖通過使用return view (ActionName, Model)
將模型傳遞給動作。我已經知道TempData
但我的問題是,當我在剃刀幾個文本框爲模型,例如像:ASP.NET MVC:返回視圖(ActionName,Model)
@Html.TextBoxFor (x=> x.Field1)
And
@Html.TextBoxFor (x=> x.Field2)
當我與RedirectToAction
一起使用TempData
,在模型中的數據被加載到我的領域非常好,但是當我使用return View ("ActionName", MyModel)
時,它會拋出Value cannot be null exception
。
如何我做的是這樣:
public ActionResult Act1() {
Model M = new Model() {Field1="123", Field2="245"};
return View("Act2", M);
}
這引發異常,而這種方法的工作原理:
public ActionResult Act1() {
Model M = new Model() {Field1="123", Field2="245"};
TempData["Model"] = M;
return RedirectToAction ("Act2");
// then casting the TempData in the Act2 back to M and it works!
}
我的問題是,爲什麼ACT1方法導致錯誤? (剃刀部分是完全一樣的,問這個問題出於好奇)
編輯:
// Without TempData
public ActionResult Act2 (Model model) {
return View(model);
}
請問您可以展示第二個Action代碼'Act2'嗎? –
@lnanikian:編輯了這個問題。 – JAX
您是否期待'返回View(「Act2」,M);'調用'Act2'動作?如果這就是你想要做的,那麼這樣做:'返回Act2(M);' –