0

我对 MVC3 部分视图有点墨守成规。我想要做的是在我的一个页面中有一个局部视图,并将来自局部视图的数据存储在模型中,然后传递回主视图。不过,现在发生的情况是,在提交数据后,返回给控制器的模型将部分视图模型设置为空。

模型

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

1 回答 1

2

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

[HttpPost]
public ActionResult Create(MyPartialView model)
{
    // handle postback here
}
于 2012-08-20T17:55:04.210 回答