首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

ASP.NET MVC URL路由不会给我漂亮的URL

作为一个云计算领域的专家,我可以告诉您,ASP.NET MVC URL路由不会给您漂亮的URL的原因可能是因为URL路由的配置不正确。

在ASP.NET MVC中,URL路由是通过将URL与控制器和操作之间的映射来工作的。如果您没有正确配置URL路由,那么URL将不会是您期望的漂亮的URL格式。

要解决这个问题,您需要确保您的URL路由配置正确。您可以在您的MVC应用程序的“App_Start”文件夹中找到“RouteConfig.cs”文件,这个文件包含了所有的URL路由配置。

在“RouteConfig.cs”文件中,您可以使用“MapRoute”方法来定义您的路由。例如:

代码语言:csharp
复制
routes.MapRoute(
    name: "Default",
    url: "{controller}/{action}/{id}",
    defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);

这个路由将匹配任何格式为“{controller}/{action}/{id}”的URL,并将其映射到相应的控制器和操作。

如果您希望URL更加漂亮,您可以使用“AttributeRouting”库来定义您的路由。这个库允许您在控制器和操作上使用属性来定义路由,这样您可以更好地控制URL的格式。

例如,您可以使用“Route”属性来定义您的路由:

代码语言:csharp
复制
[Route("products/{id:int}")]
public ActionResult Details(int id)
{
    // ...
}

这个路由将匹配任何格式为“/products/{id}”的URL,其中{id}是一个整数。

希望这些信息能够帮助您解决问题。如果您需要更多的帮助,请随时告诉我。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • MVC 路由生成URL Url.Action&Html.ActionLink

    在项目中URL可能会发生改变,如果我们直接指定固定URL,在后期如果改变会比较麻烦,今天我介绍学习到两种方法 Url.Action 我们从官方注释中可以看到每个参数应该传什么样值,下来我们来使用这个方法...,看看生成URL是什么,下面的是在页面中代码 action操作...URL,通过查看源代码可以看到 我们可以从上面生成URL看到,单个参数时是完全匹配,多参数时溢出参数会以?...和&形式拼接在URL模式之后。...二三四参数第一与Url.Action所传参数相同,第五个参数可以设置标签属性值,在标签中我设置了class和title,下来我们看看生成URL到底是什么样

    12510

    ASP.NET MVC路由扩展:链接和URL生成

    ASP.NET 路由系统通过注册路由表旨在实现两个“方向”路有功能,即针对入栈请求路由和出栈URL生成。...为了编程方面,ASP.NET MVC为了设计了HtmlHelper和UrlHelper这两个帮助类,我们可以通过调用它们ActionLink/RouteLink和Action/RouteUrl根据注册路有规则生成链接或者...生成逻辑 为了让读者对UrlHelper如果利用ASP.NET路由系统进行URL生成逻辑具有一个深刻认识,我们接下来创建一个名为RouteHelper等效帮助类。...RouteUrl方法来说,它还是利用整个路由表进行URL生成,如果显示指定了路由对象注册名称,那么就会从路由表中获取相应路由对象,如果该路由对象与指定变量列表不匹配,则返回Null;否则返回生成...MVC路由扩展:路由映射 ASP.NET MVC路由扩展:链接和URL生成

    1.7K70

    Asp.Net MVC2.0 Url 路由入门---实例篇

    本篇主要讲述Routing组件作用,以及举几个实例来学习Asp.Net MVC2.0 Url路由技术。     ...这是Routing组件两个重要作用! 下面我们从几个例子来讲解一下Url路由使用。 MapRoute()有6个方法可以重载,下面举5个例子相应介绍!...实例二:不使用默认值Url路由规则   函数头:MapRoute( string name, string url); routes.MapRoute("没有默认值路由规则", "{controller.../ 实例三:带名称空间Url路由规则       函数头:MapRoute( string name, string url, string[] namespaces);//路由名,Url规则,名称空间...实例四:带约束路由规则       函数头:MapRoute( string name, string url, object defaults, object constraints);//路由名,

    39520

    ASP.NET路由系统:根据路由规则生成URL

    前面我们已经提到过,ASP.NET 路由系统主要具有两个方面的应用,其一就是通过注册URL模板与物理文件路径匹配实现请求地址和物理地址分离;另一个则是通过注册路由规测生成一个相应URL。...,会遍历整个集合每个路由对象并调用其GetVirtualPath方法,如果返回VirtualPathData不会Null则直接将其作为返回值;否则(找不到匹配路由对象)返回Null。...路由对象针对GetVirtualPath方法而进行路由匹配只要求URL模板中定义变量值都能被提供,而这些变量值具有三种来源,分别是路由对象定义默认变量值、指定RequestContextRouteData...同样以之前定义关于获取天气信息URL模板为例,下面是路由注册代码。...ASP.NET路由系统:URL与物理文件分离 ASP.NET路由系统:路由映射 ASP.NET路由系统:根据路由规则生成URL

    1.3K80

    ASP.NET MVC URL重写与优化(进阶篇)-继承RouteBase玩转URL

    引言 在初级篇中,我们介绍了如何利用基于ASP.NET MVCWeb程序中Global文件来简单重写路由。...初级篇传送门:使用Global路由表定制URL 在进阶篇中,我们将介绍ASP.NET 路由相关类基类-抽象类RouteBase,并演示如何通过继承它,让URL重写和优化变成Free Style。...ca前缀意思是分类category。 对于这个需求简单配置Global文件是无法做到。首先我们来介绍一下ASP.NET 路由所有类基类RouteBase。...因为返回路由值而不是null,表示已经找到匹配项,就不会再往下匹配了。 当然,请不要这样写。。。...,表示已经找到匹配项,则匹配不会往下继续。

    1.5K30

    ASP.NET Web API路由系统:Web Host下URL路由

    如果采用Web Host方式将定义Web API寄宿于一个Web应用之中,其实最终URL路由还是通过ASP.NET本身路由系统完成,那么两个路由系统之间是如何衔接在一起呢?。...实现在HostedHttpRoute之中核心路由功能基本上是通过这个Route对象完成,所以我们才说Web Host下ASP.NET Web APIURL路由最终还是利用ASP.NET自身路由系统实现...Web API路由系统在Web Host情况下是如何利用ASP.NET自身路有系统实现URL路由ASP.NET Web API路由系统中HostedHttpRoute对象通过创建ASP.NET...路由系统HttpWebRoute进行基于URL模板路由解析,但是针对约束检验依然是利用ASP.NET Web API路由系统中HttpRouteConstraint来完成。...Web API在Web Host模式下依然是借助ASP.NET自身路由系统实现URL路由,那么意味着当我们针对ASP.NET Web API进行路由映射时候必须在ASP.NET路由系统全局路由表中添加对一个继承自抽象类

    1.6K100

    DjangoURL路由系统

    URLconf 不检查请求方法。换句话讲,所有的请求方法 —— 同一个URLPOST、GET、HEAD等等 —— 都将路由到相同函数。...四.命名URL(别名) 和 URL反向解析     简单来说就是可以给我URL匹配规则起个名字,一个URL匹配模式起一个名字。...举个简单例子: url(r'^home', views.home, name='home'), #给我url匹配模式起名(别名)为home,别名不需要改, 路径你就可以随便改了,别的地方使用这个路径...,就用别名来搞. url(r'^index/(\d*)', views.index, name='index'), # 给我url匹配模式起名为index   在模板里这样引用: {% url 'home...当命名你URL 模式时,请确保使用名称不会与其它应用中名称冲突。

    1.4K40

    ASP.NET MVC 中获取当前URL、controller、action

    一、URL获取很简单,ASP.NET通用: 【1】获取 完整url (协议名+域名+虚拟目录名+文件名+参数)  string url=Request.Url.ToString();  【2】获取...虚拟目录名+页面名+参数:  string url=Request.RawUrl; (或 string url=Request.Url.PathAndQuery;) 【3】获取 虚拟目录名+页面名...: string url=HttpContext.Current.Request.Url.AbsolutePath; (或 string url= HttpContext.Current.Request.Path...;)  【4】获取 域名: string url=HttpContext.Current.Request.Url.Host;  【5】获取 参数:  string url= HttpContext.Current.Request.Url.Query...二、当前controller、action获取 RouteData.Route.GetRouteData(this.HttpContext).Values["controller"]  RouteData.Route.GetRouteData

    2.4K90

    ASP.NET路由系统:URL与物理文件分离

    表现为请求地址与目标Controller和Action动态映射URL路由系统并不是专属于ASP.NET MVC,而是直接建立在ASP.NET 中。...ASP.NET通过URL路由系统实现了请求地址与物理文件分离。...而URL路由系统则是ASP.NET一部分,是通过托管代码实现。为了让读者对ASP.NETURL路由具有一个感官认识,我们来演示一个简单实例。...二、 实例演示:通过URL路由实现请求地址与.aspx页面的映射 接下来我们将创建一个简单ASP.NET Web Forms应用,并采用一个独立于.aspx文件路径URL来访问对应Web页面,而两者之间映射通过...路由系统:URL与物理文件分离 ASP.NET路由系统:路由映射 ASP.NET路由系统:根据路由规则生成URL

    1.2K80

    ASP.NET Core路由:注册URL模式与HttpHandler映射关系

    ASP.NET Core路由是通过一个类型为RouterMiddleware中间件来实现。...除此之外,请求URL还会携带相应参数,该中间件在进行路由解析过程中还会根据生成相应路由参数提供给处理该请求Handler。...[本文已经同步到《ASP.NET Core框架揭秘》之中] 目录 一、注册请求路径与HttpHandler之间映射 二、设置内联约束 三、为路由参数设置默认值 四、特殊路由参数 一、注册请求路径与...由于我们在注册时候并没有为这个两个路由参数取值做任何约束,所以请求URL携带任何字符都是有效。...ASP.NET Core针对我们常用验证规则定义了相应约束表达式,我们可以根据需要为某个路由参数指定一个或者多个约束表达式。

    1.4K60

    ASP.NET Core路由:注册URL模式与HttpHandler映射关系

    ASP.NET Core路由是通过一个类型为RouterMiddleware中间件来实现。...除此之外,请求URL还会携带相应参数,该中间件在进行路由解析过程中还会根据生成相应路由参数提供给处理该请求Handler。...目录 一、注册请求路径与HttpHandler之间映射 二、设置内联约束 三、为路由参数设置默认值 四、特殊路由参数 一、注册请求路径与HttpHandler之间映射 ASP.NET Core针对请求处理总是在一个通过...由于我们在注册时候并没有为这个两个路由参数取值做任何约束,所以请求URL携带任何字符都是有效。...ASP.NET Core针对我们常用验证规则定义了相应约束表达式,我们可以根据需要为某个路由参数指定一个或者多个约束表达式。

    1.3K10

    路由URL区别与联系

    路由 简单说,URL 路由就是允许你在一定规则下定制你需要 URL 样子,以达到美化 URL ,提高用户体验,也有益于搜索引擎收录目的。...要使用路由功能,前提是你URL支持PATH_INFO(或者兼容URL模式也可以,采用普通URL模式情况下不支持路由功能),并且在应用(或者模块)配置文件Conf/config.php中开启路由 'URL_ROUTER_ON...格式3:'路由规则'=>'外部地址' 格式4:'路由规则'=>array('外部地址','重定向代码') 语法说明 路由规则即是我们要在 URL 中显示出来规则,后面元素值部分是实际 URL 地址及参数...如果在配置文件里定义了路由开启功能,系统在执行 Dispatch 解析时候,会判断当前 URL 是否存在定义路由名称,如果有就会按照定义路由规则来进行 URL 解析。...ThinkPHP URL 路由实例 以本文开始例子为例,看该路由是如何定义

    3.1K20

    Flask 视图函数URL路由设置说明

    相对于DjangoURL路由设置来说,Flask配置方式有较多不同。 下面来根据几个示例,来看看有什么地方不同。...示例如下: app.url_map 查看所有路由 使用methods设置视图GET、POST请求方式 同一路由装饰多个视图函数 同一视图多个路由装饰器 使用 url_for 进行url反向解析 app.url_map...查看所有路由 Flask路由可以通过视图函数修饰器@app.route()来配置访问url。...同一路由装饰多个视图函数 在同一个url路由请求下,可以会有GET\POST\DELETE\PUT等多个不同业务处理。 那么就需要使用不同视图函数来区分处理。 ?...使用 url_for 进行反解析 类似于Django在设置转发url时候不会直接去写死路径,而是使用url设置name值来进行url反向解析。

    1.8K00

    RESTful 在路由 URL 有名义写法

    前边已经有过一篇博客简单介绍在Laravel 中使用 RESTful 这篇文章介绍一下各种RESTful风格路由写法,不一定是正确,但是个人觉得写这样路由很有含义。...基础路由 一般放在一个组里,其他路由总要带上这个前缀 总是API **+**版本号 /api/v1 基本参数 分页参数,直接使用QueryString limit page /url?...limit=10&page=1 多参数排序 /url?...id=1,2,3 认证路由 通常情况下都可以使用(名义明确) 登录 method: post /login 注销 method: post /logout 但是为了符合RESTful风格,我们也可以换个名字...有时候总不可避免出现路由名字多个单词组合 这时候我们可以使用中划线分隔,更利于seo优化 获取某种文章类型文章 method: get /article-types/{article_type}/

    13510

    用好ASP.NET 2.0URL映射

    简介: URL映射是ASP.NET 2.0中提供新特性。URL映射技术帮助我们将一个特定URL映射为另一个URL。...此时使用URL映射让你可以映射到新页面,而不必通知用户。 如果我们设置了URL映射,那么任何用户在URL栏输入Homepage.aspx时,调用都是OriginalHome.aspx。...2.若有一个大而复杂URL,但不想把它给用户,那么你可以告知简单URL,而自己将简单URL映射到原先URL。 3. 用这个方法可以方便处理菜单控件。最好例子就是asp.net站点。...4.这里也牵涉到安全(用户无法在URL栏看到真实页面名,这也是一种加密!)。 希望你喜欢这个新特性。 是的,我知道,现在你问题是,既然现在ASP.NET 2.0还没有面市,怎么利用这个新特性呢。...他解释非常简单,根据你实际案例,你可以为它增加功能。 现在你可以使用这个技巧,而等ASP.NET 2.0面市,你就可以利用新特性了。

    80530

    ASP.NET Core路由中间件: 终结点与URL映射

    借助路由系统提供请求URL模式与对应终结点(Endpoint)之间映射关系,我们可以将具有相同URL模式请求分发给应用终结点进行处理。...ASP.NET Core路由是通过EndpointRoutingMiddleware和EndpointMiddleware这两个中间件协作完成,它们在ASP.NET Core平台上具有举足轻重地位...,因为ASP.NET Core MVC框架就建立在这个中间件之上。...为了使读者对实现在RouterMiddleware路由功能有一个大体认识,下面先演示几个简单实例。 一、路由注册 我们演示这个ASP.NET Core应用是一个简易版天气预报站点。...ASP.NET Core为常用验证规则定义了相应约束表达式,我们可以根据需要为某个路由参数指定一个或者多个约束表达式。

    93231
    领券