将部分视图连接到模型

时间:2012-08-20 17:49:16

标签: asp.net-mvc partial-views

我对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());
    } 

1 个答案:

答案 0 :(得分:2)

如果要将 Model.MyPartialView 对象传递回控制器,则需要向控制器添加另一个Action方法。应该看起来像这样:

[HttpPost]
public ActionResult Create(MyPartialView model)
{
    // handle postback here
}