![](/img/trans.png)
[英]How to get url parameter value of current route in view in ASP .NET MVC
[英]How to access current route parameter from url and reference it on a asp.net view page
我剛剛做了一條新路線:
routes.MapRoute(
name: "example",
url: "{example}/{details}/{id}",
defaults: new { controller = "example", action = "Index", id = UrlParameter.Optional }
);
該路線可以正常運行,但是我不知道如何引用當前使用的“ id”,因此我可以在我的“詳細信息”視圖頁面上為路線上的“ id”顯示正確的信息。
有關更多信息,我在基本的“示例”頁面上顯示數據庫中的用戶,每個用戶都有與之關聯的“ ID”,單擊其名稱后,它將抓取“ ID”並轉到/ example /詳細信息/ {我剛剛點擊的用戶ID}(有效),現在我需要知道如何顯示該路線的用戶信息。
控制器:
public ActionResult Details()
{
var example = from a in db.Example
where a.ExamplePresent
orderby a.ExampleName
select a;
return View(example.ToList());
}
視圖:
@model List<Example.Areas.ExamplePage.Models.Example>
@{
ViewBag.Title = "Example Page";
}
如果您不想為此創建視圖模型,則可以通過元組將id參數和列表傳遞給視圖,並在視圖中引用它,如下所示:
public IActionResult Details(int id)
{
var example = from a in db.Example
where a.ExamplePresent
orderby a.ExampleName
select a;
return View(Tuple.Create(id, example.ToList()));
}
視圖
@model Tuple<int, List<Example.Areas.ExamplePage.Models.Example>>
@{
ViewData["Title"] = "Details";
}
<h2>id: @Model.Item1</h2>
您的示例列表是:
@Model.Item2
一種更合適的方法是為詳細信息視圖創建視圖模型,並通過視圖模型傳遞您的值:
視圖模型:
public class DetailsViewModel
{
public int Id {get;set;}
public IList<Example.Areas.ExamplePage.Models.Example> Examples {get;set;}
}
行動:
public IActionResult Details(int id)
{
var example = from a in db.Example
where a.ExamplePresent
orderby a.ExampleName
select a;
return View(new DetailsViewModel{ Id = id, Examples = example.ToList() });
}
視圖:
@model DetailsViewModel
@{
ViewData["Title"] = "Details";
}
<h2>id: @Model.Id</h2> // your list is @Model.Examples
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.