C# 在ASP.NETCore2中使用标记帮助程序生成漂亮的URL
如何使用标记帮助程序生成一个好的URL 例如:C# 在ASP.NETCore2中使用标记帮助程序生成漂亮的URL,c#,asp.net-core,asp.net-core-2.0,asp.net-core-tag-helpers,C#,Asp.net Core,Asp.net Core 2.0,Asp.net Core Tag Helpers,如何使用标记帮助程序生成一个好的URL 例如: <a asp-controller="Article" asp-action="FilterByTag" asp-route-tagId="@tag.Id" title="@tag.Description"> <span class="badge badge-dark">@tag.Title</span> </a> @标签.标题 此代码生成一个
<a asp-controller="Article"
asp-action="FilterByTag"
asp-route-tagId="@tag.Id"
title="@tag.Description">
<span class="badge badge-dark">@tag.Title</span>
</a>
@标签.标题
此代码生成一个URL,如/Article/FilterByTag?tagId=2
但是我想要/Article/FilterByTag/tagId=2
或/Article/FilterByTag/2
如何使用标记帮助程序生成此URL?在操作上使用属性路由,如
[Route(“Article/FilterByTag/{tagId}”)]
比如说
[Route("[controller]")]
public class ArticleController : Controller {
//...other actions
[HttpGet]
[Route("FilterByTag/{tagId}")] // Matches GET Article/FilterByTag/2
public IActionResult FilterByTag(int tagId) {
//...
return View();
}
}
这样,当从标记帮助器引用操作时,生成的链接将映射到操作的路由模板,并返回所需的格式,如Article/FilterByTag/2
属性路由需要更多的输入来指定路由;传统的默认路由更简洁地处理路由。但是,属性路由允许(并且需要)精确控制应用于每个操作的路由模板
参考在操作上使用属性路由[路由(“Article/FilterByTag/{tagId}”)]