[英]c# razor actionresult parameter
我是 mvc razor 的新手,所以請原諒我對這個主題不熟悉。 如果我理解得很好,就是 controller 獲得 url 參數,如下所示:
// Get: /User/23
public ActionResult(int? id) {
return View("User", id);
}
所以基本上,這個ActionResult
獲取 url 中的參數並將其發送到某個地方。 但是哪里?
另外,假設我有一個存儲庫,我在其中返回IQueryable<>
class 中的所有用戶。 如果 id 不是 null 它只得到相關的結果,如果不是,它得到整個列表。 因此,我想向視圖返回一個列表並顯示結果。 我怎樣才能做到這一點? 為了便於理解,我舉了以下例子:
// I want to populate this list based on the id in the actionresult
@foreach(var u in MyList) {
name: @u.Name <br>
lastname: @u.LastName <hr>
}
無論您作為第二個參數返回什么,都是傳遞到視圖中的 model。 然后,您可以在 WebViewPage 中繼承 razor 頁面,或者更好地使用 @model 關鍵字。 傳入的數據可通過“模型”變量在頁面內使用。
return View
在基礎 class, Controller
中調用輔助方法。
它將返回一個ViewResult
,參數是傳遞給視圖的 model 。
因此,如果您想通過用戶列表,您可以這樣做:
public ActionResult Users()
{
var users = _repository.FindAllUsers();
return View(users);
}
請注意我是如何遺漏視圖名稱的,因此默認約定是根據操作名稱查找視圖,在本例中Users.cshtml
。 始終嘗試使用約定而不是配置——這就是 MVC 的偉大之處。
@model IEnumerable<YourApp.Models.User>
@Html.DisplayForModel()
Shared\DisplayTemplates\User.cshtml
@Html.LabelFor(model => model.Name)
@Html.DisplayFor(model => model.Name)
@Html.LabelFor(model => model.LastName)
@Html.DisplayFor(model => model.LastName)
請注意我沒有使用foreach
循環 - 我再次使用自定義顯示模板 - 約定優於配置。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.