Asp.net mvc MVC核心路由问题
我有一个MVC核心站点,设置了默认路线:Asp.net mvc MVC核心路由问题,asp.net-mvc,asp.net-core,routing,Asp.net Mvc,Asp.net Core,Routing,我有一个MVC核心站点,设置了默认路线: public void Configure(IApplicationBuilder app) { app.UseMvcWithDefaultRoute(); } 它创建规则{controller=Home}/{action=Index}/{id?} 我有一个链接,它是使用像这样的标记帮助器生成的 <a asp-controller="Help" asp-action="privacy-policy" asp-route-id="@Mod
public void Configure(IApplicationBuilder app)
{
app.UseMvcWithDefaultRoute();
}
它创建规则{controller=Home}/{action=Index}/{id?}
我有一个链接,它是使用像这样的标记帮助器生成的
<a asp-controller="Help" asp-action="privacy-policy" asp-route-id="@Model.id" target="_blank">
privacy policy
</a>
但是点击它我得到了一个404
[Route("help")]
public class HelpController : Controller
{
[HttpGet("privacy-policy")]
public async Task<IActionResult> PrivacyPolicy(string id)
{
// stuff
}
}
[路由(“帮助”)]
公共类帮助控制器:控制器
{
[HttpGet(“隐私政策”)]
公共异步任务PrivacyPolicy(字符串id)
{
//东西
}
}
我做错了什么。在
HttpGet()
中缺少使用{id}
参数
您可以执行以下操作
[HttpGet("privacy-policy/{id}")]
public async Task<IActionResult> PrivacyPolicy(string id)
{
// stuff
}
[HttpGet(“隐私策略/{id}”)]
公共异步任务PrivacyPolicy(字符串id)
{
//东西
}
非常确定您在路由中需要id:[HttpGet(“隐私策略/{id}”)]
除了上面的注释:对于您当前的配置,以下请求应该适用于您,其中id是一个查询参数,而不是路由的一部分:http://localhost:63110/help/privacy-政策?id=9b933739-15d0-4c60-a84e-29f596a179d4
yes,谢谢你的帮助
[HttpGet("privacy-policy/{id}")]
public async Task<IActionResult> PrivacyPolicy(string id)
{
// stuff
}