MVC 5模型内部模型回到控制器

时间:2014-04-07 17:53:45

标签: razor model controller asp.net-mvc-5

我有一个模型,里面有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,它有自己的提交。

2 个答案:

答案 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)

一种解决方案是为每个子类型EditorTemplateUArama u

创建HArama h

编辑器模板是一个.cshtml(或.aspx)文件,设置用于处理特定类型的任何模型实例。

根据ASP.Net-MVC的惯例,编辑器模板放在/Views/Shared/EditorTemplates中。默认情况下,当您调用时,将使用放置在此位置的模型类型@model mynamespace.UArama的编辑器模板:

@Html.EditorFor(m => m.u) 

我发现当我以这种方式使用编辑器模板时,模型绑定效果很好。