我有一个模型,里面有2个模型:
public class ASayfa
{
public UArama u = new UArama();
public HArama h = new HArama();
}
ASayfa内的课程如下:
public class UArama
{
public string ad { get; set; }
public bool varmi { get; set; }
}
public class HArama
{
public string hazir { get; set; }
public bool varmi { get; set; }
}
在我看来:
@using (Html.BeginForm("uArama", "Home"))
{
@Html.TextBoxFor(m => m.u.ad, new { @class = "suggestBox ui-autocomplete-input", id = "ad", autocomplete = "off" })
<input type="submit" value=@Resources.UAramaTus class="search-btn" onclick="">
}
当我提交表单时,模型为空。在我刚刚参加了UArama课程并且它正在工作之前,但是当我将它更改为在ASayfa类中时,它开始变回空洞。 我怎样才能做到这一点?我需要在一个视图中使用两个模型,因为有一个辅助hml.beginform,它有自己的提交。
答案 0 :(得分:2)
我找到了解决方案。 在主要课程中:
public class ASayfa
{
public UArama u = new UArama();
public HArama h = new HArama();
}
将其更改为:
public class ASayfa
{
public UArama u {get; set;}
public HArama h {get; set;}
}
并且有效
答案 1 :(得分:0)
一种解决方案是为每个子类型EditorTemplate
和UArama u
HArama h
编辑器模板是一个.cshtml(或.aspx)文件,设置用于处理特定类型的任何模型实例。
根据ASP.Net-MVC的惯例,编辑器模板放在/Views/Shared/EditorTemplates
中。默认情况下,当您调用时,将使用放置在此位置的模型类型@model mynamespace.UArama
的编辑器模板:
@Html.EditorFor(m => m.u)
我发现当我以这种方式使用编辑器模板时,模型绑定效果很好。