如何将列表模型与ASP.NET MVC3中的另一个模型相结合

时间:2015-11-11 03:44:00

标签: c# asp.net-mvc asp.net-mvc-3 model

我有两种模式:

public class Model1
    {
        public int? Id { get; set; }    
        public string Name{ get; set; }
        private IList<Model2> _model2; 
    } 

  public class Model2
        {
           public string Name2{ get; set; }
        }

ajax调用的JSON数据:

[
  {
    "Id": 1,
    "Name": "Foo",
    "Name2": "Foo2"
  },
  {
    "Id": 2,
    "Name": "Foo3",
    "Name2": "Foo4"
  }
]

控制器操作:

public ActionResult Save(List<Model1> models)
        {
        }

这样我就不会在控制器动作中得到Name2。有没有办法让Name2进入控制器?

我知道可以通过创建另一个模型来解决。 e.g

public class Model3
        {
            public int? Id { get; set; }    
            public string Name{ get; set; }
            private Model2 _model2; 
        } 

但我不想创建新的模型类。 感谢....

2 个答案:

答案 0 :(得分:1)

JSON数据应采用此格式

clang/libclang

答案 1 :(得分:1)

您可以像这样从Model2派生Model1;

public class Model1:Model2
{
    public int? Id { get; set; }    
    public string Name{ get; set; }        
} 

现在你应该看到Name2作为Model1中的属性,你的Json应该按原样运行。