我对MVC3部分视图有点不满。我想要做的是在我的一个页面中有一个局部视图,并将部分视图中的数据存储在模型中,并传递回主视图。但是,现在发生的事情是,在提交数据之后,返回到控制器的模型将部分视图模型设置为null。
模型
public class MyModel {
...(other variables)...
[Required]
[NotMapped]
public virtual MyPartialView myPartial { get; set; }
}
查看
@model MvcPartialViewExample.Models.MyModel
@{
ViewBag.Title = "Create";
}
@using (Html.BeginForm()) {
@Html.ValidationSummary(true)
<fieldset>
...(other data)...
@{
Html.RenderPartial("_MyPartialView", Model.MyPartialView, new ViewDataDictionary());
}
<p>
<input type="submit" value="Create" />
</p>
</fieldset>
}
<div>
@Html.ActionLink("Back to List", "Index")
</div>
控制器
public class MyModelController : Controller
{
private MyModelContext db = new MyModelContext();
//
// GET: /PartialViewTesting/Create
public ActionResult Create()
{
return View(new MyModel());
}
答案 0 :(得分:2)
如果要将 Model.MyPartialView 对象传递回控制器,则需要向控制器添加另一个Action方法。应该看起来像这样:
[HttpPost]
public ActionResult Create(MyPartialView model)
{
// handle postback here
}