2011-07-21 13 views
4

URLのidとして文字列を受信したいとします。ここに例があります:URLルーティング:IDを文字列にするにはどうすればよいですか?

http://www.example.com/Home/Portal/Fishing 

私は私のidに釣りを持っています。私のコントローラから

コード:しかし、私は次のコードでそれを達成することはできませんGlobal.asax.csから

public ActionResult Portal(string name) 
{ 
    // some code 
    ViewData["Portal Name"] = name; 
} 

コード:

routes.MapRoute(
    "Default", // Route name 
    "{controller}/{action}/{id}", // URL with parameters 
    new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults 
); 

答えて

8

だけidに引数を変更します。

public ActionResult Portal(string id) 
{ 
    // some code 
    ViewData["Portal Name"] = id; 
} 

引数がトークンのルート値と同じ名前を持つ場合、引数はバインドされますen。だから、別のアプローチは、name名前付き引数を維持し、ルートを変更するには、次のようになります。

public ActionResult Portal(string name) 
{ 
    // some code 
    ViewData["Portal Name"] = name; 
} 

routes.MapRoute(
    "Default", // Route name 
    "{controller}/{action}/{name}", // URL with parameters 
    new { controller = "Home", action = "Index", name = UrlParameter.Optional } // Parameter defaults 
); 

それは、より標準的なアプローチだと、私は、しかし、idを使用して選ぶだろう。

+0

ありがとうございました。できます! – GabrielC

関連する問題