2017-09-04 75 views
0

如何使用錨標籤助手生成像這樣的網址「www.example.com/cars/1/slug」?ASP核心如何在獲取操作中使用錨標籤助手?

[Route("cars")] 
public class CarsController: Controller 
    { 
    [HttpGet("{id}/{slug?}")] 
public IActionResult Get(int id, string slug = "static-slug") 
    { 
      ... 

在我的Razor視圖我寫這樣的:

<a asp-controller="cars" asp-route-id="@ResultSearch.CarId" asp-route-slug="@ResultSearch.Slug"> 

生成此

http://example.com/cars/cars?id=1072&slug=slug 

我下面或多或少寧靜的設計,我不能說出的獲取動作「汽車「,因爲我已經定義了具有此名稱的另一條路線,以顯示汽車部分。我正在處理的路線是顯示特定汽車的詳細信息。

+0

你有沒有嘗試添加'ASP-行動=「獲取」'? – Ali

回答

0

你需要指定的動作,除非它的存在,它無法找到的動作:

<a asp-action="Get" asp-controller="Cars" asp-route-id="@ResultSearch.CarId" asp-route-slug="@ResultSearch.Slug"> 
+0

我最終會這樣做:www.example.com/cars/get/1/slug我想要這個www.example.com/cars/1/slug。得到將打破「友好的網址」完美主義。我不買這種「友好的網址」,但在我看來,大多數網絡開發人員都同意這個想法。友好的網址可以爲不存在的產品生成虛假網址,以便在Google上獲得結果並顯示類似的產品,但不會顯示Ebay描述的「友好網址」使用該網址的情況。 –

+0

你不應該在URL中有'get'。對我來說,鏈接變成'http:// localhost:33215/cars/1072/some-slug'。您需要指定操作,以便它可以找到要鏈接到的操作。然後它使用您在屬性中定義的內容來生成URL。 – juunas

相關問題