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}"
必須要一樣
留言
張貼留言