1

ルーティングは私の得意分野ではないと言うのは控えめな表現なので、ご容赦ください。

私のページの 1 つにこのリンクがあり、これを取得してマップするには MVC ルートが必要です。

「MyArea」エリア「MessagesController」コントローラー「Inbox」メソッド

http://localhost/MyArea/messages/list.asp?pjid=&box=in&sf=mesibox

私がこれまでに思いついたことは、それをカットしません。

routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

routes.IgnoreRoute("favicon.ico");

routes.MapRoute(
    "Messages", 
    "messages/list.asp", 
    new
        {
            controller = "Messages", 
            action = "Inbox"
        });

routes.MapRoute(
    "Default",
    "{controller}/{action}/{id}",
    new
        {
            controller = "Account",
            action = "LogOn",
            id = UrlParameter.Optional
        }
    );

どんな助けでも大歓迎です。

ありがとう、スティーブン

更新: Darin はここで同様の質問に答えました ASP.Net MVC 3 で従来の QueryString パラメータをルーティングする方法は? これにより、クエリ文字列パラメーターが処理されます。次に、主要なセグメントを把握します。

4

1 に答える 1

1

エリアを定義したようです。global.asax 内ではなく、このエリアのルーティング構成内にそのルートを追加してみてください。

public override void RegisterArea(AreaRegistrationContext context)
{
    context.MapRoute(
        "MyArea_default",
        "MyArea/messages/list.asp",
        new { controller = "messages", action = "inbox" }
    );

    context.MapRoute(
        "MyArea_default",
        "MyArea/{controller}/{action}/{id}",
        new { action = "Index", id = UrlParameter.Optional }
    );
}
于 2012-06-22T06:00:42.420 に答える