在asp.net mvc 4中自定义路由
我正在制作一个小型项目,其中有一个页面显示可供下载的应用程序列表。 我在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 / View / A610723时,它都会失败,并且URL更改为localhost:50788 /? 并留在主页上。
我已经看了这个问题MVC 4:Custom Routes它和我想做的几乎完全一样,他们使用啤酒名称作为字符串,但我的工作不正常。
有什么我错过了吗?
谢谢
你的解决方案似乎是正确的。 你确定你的错误不在别的地方吗?
以下是这个链接的一个小例子:
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();
}
}
}
链接地址: http://www.djcxy.com/p/57857.html