Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 提交表单时,模型属性为空_C#_Asp.net Mvc - Fatal编程技术网

C# 提交表单时,模型属性为空

C# 提交表单时,模型属性为空,c#,asp.net-mvc,C#,Asp.net Mvc,在ASP.NET MVC 5项目中,我有以下模型: public class ScheduleIndexModel { public IPageList<DataModel> Data { get; set; } public FormModel Form { get; set; } public class DataModel { public Int32 Id { get; set; } public String[] Attendees { ge

在ASP.NET MVC 5项目中,我有以下模型:

public class ScheduleIndexModel {

  public IPageList<DataModel> Data { get; set; }
  public FormModel Form { get; set; }

  public class DataModel {
    public Int32 Id { get; set; }
    public String[] Attendees { get; set; }
    public String Location { get; set; }
    public DateTime Date { get; set; }
  } // DataModel

  public class FormModel {      
    public String Location { get; set; }
    public String Date { get; set; }      
  } // FormModel

}
当我提交表单时,模型不是空的,但是即使我在文本框上写了一些东西,它的属性也是空的


有人知道我做错了什么吗?

您可能需要使用绑定前缀,因为您的viewmodel是嵌套的。类似的方法可能会奏效:

public virtual ActionResult Index([Bind(Prefix = "Form")] FormModel model) 
您的html帮助程序(例如
@html.TextBoxFor(x=>x.Form.Date)
将生成如下html

<input name="Form.Date" .../>

或者使用Big Daddy建议的
[Bind(Prefix..)
视图中的模型是
@model ScheduleIndexModel
还是
@model FormModel
。如果是前者(我怀疑是),那么它应该是
操作结果索引(ScheduleIndexModel model)
(或者使用
[Bind](Prefix=
它是@model ScheduleIndexModel…所以要在我的操作中使用FormModel,我需要绑定(前缀?前缀的值是多少?我试过了,在这种情况下,表单模型在提交表单时变为null…前缀应该是表单,而不是ScheduleIndexModel。除此之外,这是解决方案。你能更新你的答案吗?这样我就可以将其标记为答案。
public virtual ActionResult Index([Bind(Prefix = "Form")] FormModel model) 
<input name="Form.Date" .../>
public virtual ActionResult Index(ScheduleIndexModel model,... 
{
  FormModel form = model.Form; // get the FormModel