【问题标题】:ASP.Net MVC 2 RoutingASP.Net MVC 2 路由
【发布时间】:2011-07-17 15:48:48
【问题描述】:

我需要就发布 ASP.NET MVC 2 应用程序时发现的路由相关问题提供反馈。 在 global.asax 文件中,我定义了以下路线:

// Thumbnails routing.
// Sample URL: resizer/resizeImage/200/200/Error/error.jpg
routes.MapRoute("Resizer","Resizer/{action}/{width}/{height}/{folder}/{file}",
new  { controller = "Resizer", action = "ResizeImage", width = 100,height = 100,
folder = "Error", file = "error.jpg"
}   
);
// Default routing.
// Sample URL: /Home/Index
routes.MapRoute("Default",  "{controller}/{action}.aspx/{id}",
new { controller = "Home", action = "Index", id = (string)null }
);  

所以,首先我必须为默认路由添加 .aspx,否则托管服务器 (Aruba) 无法正确执行路由...所以第一个问题:是否有任何其他解决方法来维持正常路由(即不添加 .aspx )?

“Resizer”路由应该允许调用应该生成缩略图图像的控制器:它在本地工作,但在网站发布时不工作。

似乎无法识别“resizer/resizeImage/200/200/Error/error.jpg”之类的路线。

我该如何处理这个问题?

【问题讨论】:

    标签: asp.net asp.net-mvc-2 routing


    【解决方案1】:

    感谢您的回复。

    我也在 Resizer 路由中修改了路由,将“.aspx”添加到 {action}。 现在看起来像:

    routes.MapRoute("Resizer", 
    "Resizer/{action}.aspx/{width}/{height}/{folder}/{file}", 
    new { controller = "Resizer", action = "ResizeImage", 
    width = 100, height = 100, folder = "Error", file = "error" });
    

    貌似可以正常使用,其实是激活IIS路由的唯一方法。

    我还删除了文件扩展名 (.jpg),只是为了避免点字符出现问题。

    马可

    【讨论】:

      【解决方案2】:

      我认为没有其他方法可以避免使用 .aspx 而不是“正常”路由。 无论如何,我认为这不是什么大不了的事。 我还认为,在您发布的代码中(我没有尝试过),路由不正确:要添加 aspx,您应该将 aspx 放在控制器名称之后,默认情况下就像在调整大小之一中一样。 类似的东西:

      routes.MapRoute("Resizer", 
            "Resizer.aspx/{action}/{width}/{height}/{folder}/{file}", 
            new { controller = "Resizer", action = "ResizeImage", 
            width = 100, height = 100, folder = "Error", file = "error.jpg" });
      

      /斯蒂法诺

      【讨论】:

        猜你喜欢
        • 2011-08-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-10-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多