我是Asp.net MVC的新手。我对自定义URL路由问题感到震惊。 我创建了名为“Customer”的Controller,并将其作为“DisplayCustomer”。 在Global.asax.cs页面中,
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Routing;
namespace MvcApplication1
{
// Note: For instructions on enabling IIS6 or IIS7 classic mode,
// visit http://go.microsoft.com/?LinkId=9394801
public class MvcApplication : System.Web.HttpApplication
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new
{
controller = "Customer",
action = "DisplayCustomer",
id = UrlParameter.Optional
}); // Parameter defaults//, new { Code = @"\d{1001,1002}" }
}
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
RegisterRoutes(RouteTable.Routes);
}
}
}
我不知道它有什么不对,它总是显示出来 如
http://localhost:50415/Views/Customer/DisplayCustomer.aspx
不是
http://localhost:50415/Customer/DisplayCustomer
我是否遗漏了一些让它成功的事情?
答案 0 :(得分:0)
当您运行/调试项目时,您的浏览器中可能会打开此URL:http://localhost:50415/Views/Customer/DisplayCustomer.aspx
,而Visual Studio中的当前活动文档是DisplayCustomer
视图,请尝试关闭此文档并重新启动运行项目(我认为MVC 4项目的问题已得到解决)。
更重要的是,您的Routes
未正确定义。如果您想使用默认模式(Action
并且在您的情况下{Controller}/{Action}
)访问/Customer/DisplayCustomer
,则不必编写任何自定义路由,只需保留默认路由:
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL pattern
new { Id = UrlParamter.Optional });
现在,让Url指向您的Action
(从您的控制器/视图中)的标准方法是使用Url.Action
方法。例如:Url.Action("DisplayCustomer", "Customer")
。
答案 1 :(得分:0)
复制您的问题
现在,请参阅下面屏幕截图中的突出显示部分
删除了View Directory和.cshtml扩展名。发生这种情况是因为您设置了起始页。
选择当前页面将解决您的问题
答案 2 :(得分:0)
将“视图”更改为“默认”
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new {
controller = "Customer",
action = "DisplayCustomer",
id = UrlParameter.Optional
}); // Parameter defaults
}