Как передать сложные объекты в ASP.NET MVC, используя параметры Get? - PullRequest
3 голосов
/ 13 мая 2010

Я хочу передать что-то вроде следующего на мой взгляд из моего контроллера через 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 Ответ

3 голосов
/ 13 мая 2010

Я только что создал новый веб-сайт ASP.NET MVC 2 в Visual Studio 2010, добавил два определения классов и изменил действие HomeController About, чтобы иметь параметр dto. Когда я перехожу на URL /Home/About?val1=aaa&val2=bbb&obj.SomeInt=111&obj.ACoolValue=ccc&obj.YetAnotherCoolValue=ddd, все свойства заполняются.

Обратите внимание, что перед именами объектов подобъекта должен стоять префикс имени свойства родителя (в данном случае obj)

...