代码之家  ›  专栏  ›  技术社区  ›  Vishal

如何使用get参数传递ASP.NET MVC中的复杂对象?

  •  3
  • Vishal  · 技术社区  · 15 年前

    我想通过get not post将如下内容从我的控制器传递给我的视图:

    public class MyDTO
    {
       public string val1 { get; set; }
       public string val2 { get; set; }
       public MyObject obj { get; set; }
    }
    
    public class MyObject
    {
       public int SomeInt { get; set; }
       public string ACoolValue { get; set; }
       public string YetAnotherCoolValue { get; set; }
    }
    

    然后控制器会喜欢这个。(注意这是一个GET):

    public ActionResult MyView(MyDTO dto)
    {
       return View(dto)
    }
    

    问题是myObject的实例返回为空,其中val1和val2具有数据。 有人碰到过这个吗?

    1 回复  |  直到 15 年前
        1
  •  3
  •   Daniel Renshaw    15 年前

    我刚刚在Visual Studio 2010中创建了一个全新的ASP.NET MVC 2网站,添加了这两个类定义,并修改了homeController的about操作以具有参数 dto . 当我转到URL时 /Home/About?val1=aaa&val2=bbb&obj.SomeInt=111&obj.ACoolValue=ccc&obj.YetAnotherCoolValue=ddd ,将填充所有属性。

    注意,子对象属性名需要以父对象的属性名为前缀。( obj 在这种情况下)