自定义MVC中的URL无法正常工作

时间:2013-07-23 06:23:01

标签: asp.net-mvc asp.net-mvc-3 asp.net-mvc-4 asp.net-mvc-2

我是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

我是否遗漏了一些让它成功的事情?

3 个答案:

答案 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)

复制您的问题

  1. 选择项目属性
  2. 选择网络标签
  3. 现在,请参阅下面屏幕截图中的突出显示部分

    原始版

    enter image description here

    修改版

    enter image description here

    删除了View Directory和.cshtml扩展名。发生这种情况是因为您设置了起始页。

    选择当前页面将解决您的问题

    enter image description here

答案 2 :(得分:0)

将“视图”更改为“默认”

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