我的控制器上有一个如下所示的操作:
[HttpPost]
public ActionResult Edit(EditMyObjectViewModel editMyObjectViewModel)
{
}
EditMyActionViewModel
包含一个MyObject
这被传递到编辑视图(上述控制器操作的 GET 版本)
当它重新发布时,ID 没有设置....
如果我将控制器更改为:
[HttpPost]
public ActionResult Edit(Guid id, EditMyObjectViewModel editMyObjectViewModel)
{
editMyObjectViewModel.ID = id;
}
这行得通,但似乎有点不对劲?
我想我也可以将视图上的隐藏字段绑定到 Model.ID?
这里有什么约定?
编辑
模型/视图模型如下:
public class EditMyObjectViewModel
{
public IEnumerable<SomeItem> SomeUnrelatedStuff { get; set; }
public MyObject MyObject { get; set; }
}
public class MyObject
{
public guid ID { get; set; }
public string Name { get; set; }
}
视图如下:
@model MyApp.Models.EditMyObjectViewModel
@using (Html.BeginForm("Edit", "License", FormMethod.Post, new { @class = "form form-horizontal" }))
{
@Html.TextboxFor(x=>x.MyObject.Name);
<input type="submit" class="btn btn-success" value="Create Modification" />
}