Asp.net mvc 对象在过帐数据时为空
在我的MVC5应用程序中,我基于这个模型创建了一个视图Asp.net mvc 对象在过帐数据时为空,asp.net-mvc,asp.net-mvc-5,Asp.net Mvc,Asp.net Mvc 5,在我的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 MyC
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;}
我在控制器中的动作方法是
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的值为空吗
知道为什么在发布数据时obj1和obj2的值为空吗
您仅使用Html.DisplayFor
显示这些字段的值。没有相应的输入字段。因此,它们永远不会被发送到服务器
您可能需要添加相应的隐藏字段,以便在提交表单时将值发送到服务器:
@Html.HiddenFor(model => mode.Obj1.Foo)
@Html.HiddenFor(model => mode.Obj1.Bar)
...
或者更好,因为这些值不应该由用户修改,所以在提交表单时从后端检索它们会更好。在GET操作中,您从某处检索到了它们相应的值。在您的POST操作中,只需从同一位置检索它们。您是否可以在负责发布数据的视图中添加表单请检查此链接使用
HiddenFor
来持久化Obj1和Obj2。我同意这一点。但就性能而言,这是一种好方法吗(在发布数据时再次获取数据)