2012-07-13 43 views
0

我有一個控制器行動以下我可以將MVC 3控制器操作中的Id參數用作複雜參數的Id嗎?

public class HomeController : BaseController 
{ 
    public JsonResult Index(ComplexObject customObject) 
    { 
     ... 
    } 

    ... 
} 

這是ComplexObject看起來像

public class ComplexObject 
{ 
    public int? Id { get; set; } 

    ... 
} 

以下是我在我區註冊定義:

 context.MapRoute(
      "MyArea_default", 
      "MyArea/{controller}/{action}/{id}", 
      new { controller = "Home", action = "Index", id = UrlParameter.Optional }, 
      new[] { "MyApp.Areas.MyArea.Controllers" } 
     ); 

我我試圖做的是訪問我的控制器動作,如

https://mysite.com/MyArea/ {} value_of_id

,並有我的ComplexObject ModelBinder的初始化中傳遞的ID的新ComplexObject。

這可能嗎?互聯網搜索沒有提供任何幫助。

非常感謝您的幫助!

回答

3

是的,mvc會將一個路由參數綁定到一個複雜的對象上。你真的嘗試過了嗎?

+0

我試過了。我得到一個404,我假設這是因爲我的參數不叫Id。 事實上,該請求甚至沒有達到我的自定義模型活頁夾。 – 2012-07-13 18:28:19

+0

那麼,您的網址與您的路線註冊不符。問題不是複雜的對象,而是你的路由註冊要求你聲明控制器和操作。嘗試將其稱爲https://mysite.com/MyArea/Home/index/{value_of_id}。 – parKing 2012-07-13 18:30:38

+0

你是對的,工作。我如何註冊路線,以便我的行動可以像 https://mysite.com/MyArea/{value_of_id} – 2012-07-13 18:42:15

相關問題