ASP.NET Core - 在 View 之間傳送參數

Pass a parameter between views

1.使用 Routing
  • 根據URL判斷要拿到哪一個 recipe
  • 拿到recipe ID的URL, 當成參數存在URL的後面

 <h3><a href="/Recipe/@recipe.Id">@recipe.Name</a></h3>
讓routing 實現我們必須定義 Route, 再用那一個 Route 拿到我們的資料
在下一個 View 要拿到這一個 Route我們必須要告訴這一個 new view 說有一個參數已經傳進來, 這個new View 才知道要接收

@page "{id}"
因為這一個 ID 的 Data Type 是 string 所以我們要把 string 轉成 integer
var id = long.Parse((string)RouteData.Values["id"]);
2 Tag Helpers
先必須要 addTagHelper 在我們的 header,
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
我們可以把 HTML 的 attribute 換成 ASP.NET Core自己訂的 tag helpers
<h3><a asp-page="/Recipe" asp-route-id="@recipe.Id">@recipe.Name</a></h3>
看到asp-route-id, 的 id 必須要 match 下一個要接這一個 param 的 view 所放的名字 @page "{id}" 必須要一樣

留言