asp.net-mvc - Url.Action 产生查询字符串,有什么方法可以产生完整的 url?

标签 asp.net-mvc razor

目前在我的项目中,我正在使用 @Url.Action 在 anchor 标签的 href 属性中创建链接。

例如:

<a href='@Url.Action("Index", "Home", new { id = 10 })' id="btn">Click</a>

这很好用,但是生成的 URL 是......
/home/index?id=10

有没有办法返回网址
/home/index/10

用于 SEO 和美学目的?我使用 id 和 number 作为占位符 - 在实际应用程序中,它可以并且将使用字符串来代替(所以...
<a href='@Url.Action("Index", "Home", new { name="test" })' id="btn">Click</a>

返回网址
/home/index/test

最佳答案

您需要确保路由正确。确保您有这样的路线:

routes.MapRoute(
    name: "Default",
    url: "{controller}/{action}/{id}",
    defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional });

对于您的“实际应用程序”,因为您正在使用一个名为 name 的参数你需要一个看起来像这样的:
routes.MapRoute(
    name: "Default",
    url: "{controller}/{action}/{name}",
    defaults: new { controller = "Home", action = "Index" });

关于asp.net-mvc - Url.Action 产生查询字符串,有什么方法可以产生完整的 url?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24260997/

相关文章:

javascript - 如何使用带有 Scripts.Render 的 ASP MVC 4 bundle 的脚本延迟属性

javascript - 如何让 iframe 从父页面使用 css 和 javascript?

asp.net-mvc-3 - View 必须派生自 WebViewPage 或 WebViewPage<TModel>

c# - 如何在运行前编译 cshtml 而不是在临时文件上抛出构建错误

c# - razor 中此代码的正确语法

javascript - 在 asp.net mvc 中使用 RTL 输入的货币/小数输入

c# - ASP.NET View 和模型,一个小问题

asp.net-mvc - 解析 Controller 和操作上的 FilterAttributes

c# - ASP.NET MVC 2 UpdateModel() 不更新内存或数据库中的值

asp.net-mvc-3 - 乌布拉科 5 : site search