1

我是 Asp.net MVC 的新手。我对我的自定义 URL 路由问题感到震惊。我创建了名为“Customer”的控制器,并将操作创建为“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

我是否错过了使它起作用的东西?

4

3 回答 3

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")

于 2013-07-23T06:39:54.093 回答
0

复制了你的问题

  1. 选择项目属性
  2. 选择网页选项卡

现在,请参阅下面屏幕截图中突出显示的部分

原版

在此处输入图像描述

修改版

在此处输入图像描述

删除了查看目录和 .cshtml 扩展名。这是因为您设置了起始页。

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

在此处输入图像描述

于 2013-07-23T06:42:31.143 回答
0

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

routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
 new {
   controller = "Customer",
   action = "DisplayCustomer",
   id = UrlParameter.Optional
     }); // Parameter defaults
 } 
于 2013-07-23T06:43:22.420 回答