POSTING数据时,Object为null

时间:2014-03-26 07:22:58

标签: asp.net-mvc asp.net-mvc-5

在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的值为空?

1 个答案:

答案 0 :(得分:2)

  

在发布数据时,任何想法为什么obj1和obj2的值为空?

您只使用Html.DisplayFor显示这些字段的值。没有相应的输入字段。所以他们永远不会被发送到服务器。

您可能需要添加相应的隐藏字段,以便在提交表单时将值发送到服务器:

@Html.HiddenFor(model => mode.Obj1.Foo)
@Html.HiddenFor(model => mode.Obj1.Bar)
...

甚至更好,因为这些值不应该由用户修改,所以在提交表单时从后端检索它们会好得多。在GET操作中,您从某处检索了相应的值。在你的POST动作中,只需从同一个地方检索它们。