2010-05-13 69 views
3

我想通過像通過GET POST沒有從我的控制下,以我的觀點:如何使用Get參數在ASP.NET MVC中傳遞複雜對象?

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有數據。 有沒有人跑過這個?

回答

3

我剛剛在Visual Studio 2010中創建了一個全新的ASP.NET MVC 2網站,添加了兩個類定義,並修改了HomeController的關於操作以使參數dto。當我轉到URL /Home/About?val1=aaa&val2=bbb&obj.SomeInt=111&obj.ACoolValue=ccc&obj.YetAnotherCoolValue=ddd時,所有的屬性都被填充。

注意,子對象歡迎使用屬性名稱必須與母公司的屬性名(obj在這種情況下)

+0

嗯前綴。對我而言,這不是那麼做。我正在做的是從以前的ActionResult,我正在做一個RedirectToAction(「MyView」,DTO)。在我這樣做之前,我在MyObject實例中有數據,但是當我使用redirectToAction時,我失去了它。我在MyView中設置了一箇中斷點,並且看到null。 – Vishal 2010-05-13 15:17:33

+0

重定向後的URL看起來像什麼?他們的名字是否正確? – 2010-05-13 15:20:31

+0

該網址不包含obj.SomeInt等。它看起來像這樣: //theurl.com?val1=aaa&val2=bbb&MyObject=ObjectNamespace.MyObject – Vishal 2010-05-13 15:26:10

相關問題