[asp.net-mvc]在 asp.net mvc 4 中的自定义路由

发布时间: 2016/10/9 6:02:56
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我正在做一个小项目,有一个页面,显示的应用程序可供下载的列表。我在 RouteConfig.cs 的路由看起来像这样︰

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

        routes.MapRoute(
            name: "ViewApplication",
            url: "View/{applicationname}",
            defaults: new { controller = "View", action = "ViewApplication"}
        );

        routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}",
            defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
        );

在哪里我的控制器看起来像这样︰

public class ViewController : Controller
{
    public ActionResult ViewApplication(string applicationname)
    {
        return View();
    }
}

但每当我试图导航到 localhost:50788 视图/A610723 它失败,并且 URL 更改为 localhost:50788 /?并且在主页上的停留。

我已经注视这个问题MVC 4︰ 自定义路线和其几乎一模一样,因为我想要做的他们正在为一个字符串,使用 beername,但我并不工作。

有什么我错过了吗?

谢谢你

解决方法 1:

您的解决方案似乎是正确的。你确定你的错误不是在别的地方?

这里是一个小的例子,从这个链接︰

http://www.asp.net/mvc/tutorials/controllers-and-routing/creating-custom-routes-cs

它看起来就像您的解决方案。

using System.Web.Mvc;
using System.Web.Routing;

namespace MvcApplication1 {
public class MvcApplication : System.Web.HttpApplication {

    public static void RegisterRoutes(RouteCollection routes) { 

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

        routes.MapRoute( 
          "Blog", // Route name 
          "Archive/{entryDate}", // URL with parameters
           new { controller = "Archive", action = "Entry" } // Parameter defaults 
           );

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

    protected void Application_Start() {

          RegisterRoutes(RouteTable.Routes);

    } 
  }
}

在这里是控制器︰

 using System; using System.Web.Mvc;

 namespace MvcApplication1.Controllers { 
 public class ArchiveController : Controller { 

     public string Entry(DateTime entryDate) { 
          return "You requested the entry from " + entryDate.ToString(); 
     }
   } 
 }
官方微信
官方QQ群
31647020