在MY MVC5应用程序中,我基于此模型创建了一个视图
Public int Id {get;set;}
Public int Name{get;set;}
Public int Ppt1{get;set;}
Public int Ppt2{get;set;}
Public MYClass2 Obj1 {get;set;} // These objects properties are displayed in view ( Not used for editting)
Public MyClass3 Obj2 {get;set;}
我在控制器中的Action方法是
public ActionResult Create(int Project, int Licensee)
{
MyModel obj=new MyModel();
obj.Obj1=;//set the object
obj.Obj2=;//set the object
return view(obj);
}
[HttpPost]
public ActionResult Create(int Project, int Licensee,BorrowedTextItem model)
{
//Here Values of Oj1 and Obj2 are null.? ANy idea why?
}
在发布数据时,任何想法为什么obj1和obj2的值为空?
答案 0 :(得分:2)
在发布数据时,任何想法为什么obj1和obj2的值为空?
您只使用Html.DisplayFor
显示这些字段的值。没有相应的输入字段。所以他们永远不会被发送到服务器。
您可能需要添加相应的隐藏字段,以便在提交表单时将值发送到服务器:
@Html.HiddenFor(model => mode.Obj1.Foo)
@Html.HiddenFor(model => mode.Obj1.Bar)
...
甚至更好,因为这些值不应该由用户修改,所以在提交表单时从后端检索它们会好得多。在GET操作中,您从某处检索了相应的值。在你的POST动作中,只需从同一个地方检索它们。