2017-08-16 72 views
-1

我有設置默認路由的MVC核心站點:問題與MVC核心路由

public void Configure(IApplicationBuilder app) 
{ 
    app.UseMvcWithDefaultRoute(); 
} 

它創建規則{控制器=首頁}/{行動=指數}/{ID}?

我有一個鏈接是使用標籤幫助器生成的。

<a asp-controller="Help" asp-action="privacy-policy" asp-route-id="@Model.id" target="_blank"> 
     privacy policy 
    </a> 

這會產生以下鏈接:

http://localhost:63110/help/privacy-policy/9b933739-15d0-4c60-a84e-29f596a179d4 

但點擊它,我得到一個404

[Route("help")] 
public class HelpController : Controller 
{ 
[HttpGet("privacy-policy")] 
public async Task<IActionResult> PrivacyPolicy(string id) 
{ 
    // stuff 
} 
} 

我做了什麼錯。

+2

敢肯定你需要的ID在路線:'[HTTPGET(「隱私政策/(編號)」)]' – Andrei

+0

除了以上評論:與當前的配置,下面的請求應爲你工作,其中id是查詢參數,不是路由的一部分: 'http:// localhost:63110/help/privacy-policy?id = 9b933739-15d0-4c60-a84e-29f596a179d4' – Set

+0

是的,感謝您的幫助 – DavidB

回答

1

您在HttpGet()中缺少使用{id}參數。

您可以按照以下方式實施您的操作。

[HttpGet("privacy-policy/{id}")] 
public async Task<IActionResult> PrivacyPolicy(string id) 
{ 
    // stuff 
}