2011-06-30 15 views
1

次のエリア経路設定があります。mvc3経路設定をid、id2 id3

context.MapRoute(
    "Admin_default3", 
    "Admin/{controller}/{action}/{id}/{id2}/{id3}", 
    new { action = "Index" } 
); 
context.MapRoute(
    "Admin_default2", 
    "Admin/{controller}/{action}/{id}/{id2}", 
    new { action = "Index"} 
); 

context.MapRoute(
    "Admin_default", 
    "Admin/{controller}/{action}/{id}", 
    new { action = "Index", id = UrlParameter.Optional } 
); 

コントローラのアクションがヒットしたとき、私はパラメータを読み取り可能な変数名に置き、次のようなことを行います。

public ActionResult Search(Guid? id, int? id2, bool? id3) 
{ 
    Guid? source = id; 
    int daysOld = id2; 
    bool includeNonEnglish = id3; 

    //.... Action! 
} 

このようにしてください。私はルートの過多を作成する必要がありますか?

ありがとう

答えて

3

私はもっとルートを作成します。

Html.ActionLink(title, "Action", "Controller", new { source = <value>, daysOld = <value>, includeNonEnglish = <value> }); 

の代わりに::他のもののうち、

Html.ActionLink(title, "Action", "Controller", new { id = <value>, id2 = <value>, id3 = <value> }); 

(AJAXを使用して、パラメータを指定するためにJSONを使うjQueryの、で呼び出すように)そうすれば、あなたのようなものを持っています。物事をより読みやすくするでしょう。また、T4MVCを使用している場合や使用する場合にも役立ちます。

+0

大きなアドバイス、特にajax。私は今もT4を探しています。 –

関連する問題