我刚走了一条新路线:
routes.MapRoute(
name: "example",
url: "{example}/{details}/{id}",
defaults: new { controller = "example", action = "Index", id = UrlParameter.Optional }
);
该路线工作正常,但我不知道如何引用我当前使用的“ id”,因此我可以在我的“详细信息”视图页面上为该路线上的“ id”显示正确的信息。
有关更多信息,我有一个基本的“示例”页面,其中显示数据库中的用户,每个用户都有与之关联的“ ID”,单击其名称后,它会抓取“ ID”并转到/ example / details / {我刚刚点击的用户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";
}
答案 0 :(得分:0)
如果您不想为此创建视图模型,则可以通过元组将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
一种更合适的方法是为详细信息视图创建一个视图模型,并通过该视图模型传递您的值:
viewmodel:
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