C# MVC中部分视图中的表单提交

C# MVC中部分视图中的表单提交,c#,.net,asp.net-mvc,asp.net-mvc-4,C#,.net,Asp.net Mvc,Asp.net Mvc 4,我正在开发一个简单的mvc应用程序。代码如下: 模型.cs: public class CustomModel { public IEnumerable<lang> lstlang { get; set; } public IEnumerable<org> lstOrg { get; set; } } public class lang { public int langid { get; set; } public string langNa

我正在开发一个简单的mvc应用程序。代码如下:

模型.cs:

public class CustomModel
{ 
   public IEnumerable<lang> lstlang { get; set; }
   public IEnumerable<org> lstOrg { get; set; }
}

public class lang
{
   public int langid { get; set; }
   public string langName { get; set; }
}
public class org 
{
  public int orgId { get ;set;}
  public string orgName { get; set; }
}
Index.cshtml

@model CustomModel
@Html.TextboxFor(x => x.lang.FirstOrDefault().id);
<input type="button" id="btn" />
@Html.RenderPartial("Partial", model)
@model自定义模型
@TextboxFor(x=>x.lang.FirstOrDefault().id);
@Html.RenderPartial(“部分”,模型)
Partial.cshtml

@model CustomModel
@Html.TextboxFor(x => x.lang.FirstOrDefault().id);
<input type="submit" id="submit" />
@model自定义模型
@TextboxFor(x=>x.lang.FirstOrDefault().id);
问题是,当我在
Partial.cshtml
页面中单击submit按钮,并在
public Action Partial(FormCollection frm,CustomModel model)
中检查httppost方法中的模型时,对于
lstlang
lstOrg
,模型包含
null
,但是
FormCollection[0]
将给出所选文本框的值


我遗漏了什么,或者这是使用局部视图的正确方法吗?

不要使用
FirstOrDefault()
。如果您想用集合将某些内容发布回前端,则需要使用索引

Public class CustomModel
{ 
   public ICollection<lang>  lstlang { get; set; }
   public ICollection<org> lstOrg { get; set; }
}


@HTML.textboxfor(x=>x.lang[0].id);
公共类自定义模型
{ 
公共ICollection lstlang{get;set;}
公共ICollection lstOrg{get;set;}
}
@HTML.textboxfor(x=>x.lang[0].id);

查看您生成的html(特别是
name
属性)@html.textboxfor(x=>x.lang.firstordefault().id)与您的模型没有任何关系。了解绑定到集合的一些基本模型。
Public class CustomModel
{ 
   public ICollection<lang>  lstlang { get; set; }
   public ICollection<org> lstOrg { get; set; }
}


@HTML.textboxfor(x=>x.lang[0].id);