如何将经典的asp请求映射到mvc控制器和操作

时间:2012-06-22 00:19:12

标签: asp.net-mvc asp-classic

要说路由不是我强大的套件是轻描淡写的,所以请耐心等待。

我的一个页面中有这个链接,我需要我的MVC路线来选择它并将其映射到

" MyArea"区域 " MessagesController"调节器 "收件箱"方法

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在这里回答了类似的问题How to route legacy QueryString parameters in ASP.Net MVC 3?,以便处理查询字符串参数。现在找出主要部分。

1 个答案:

答案 0 :(得分: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 }
    );
}