嗨,我有一个名为PropertyDetailsModel的类,该类在View中显示名为“ propertyForAll”的每个ID的所有数据。 我希望如果用户在视图中选择一个名为“ propertyForAll”的ID,它应该能够打开一个新页面,并且仅在新页面上显示所选ID的属性。
那么我该如何将数据从显示所有数据的视图传递到新的页面视图。 (当用户选择一个ID时)
没有 db。 ... FindById 可以在新页面的控制器中使用...正如我在许多tuto中所看到的...这是由离开公司的解决方案体系结构构成的另一种体系结构。
我可以遍历PropertyDetailsModel并将其传递给 returnView()
public class PropertyDetailsModel
{
public int Id { get; set; }
public string Title { get; set; }
public string SubTitle { get; set; }
public string Description { get; set; }
...
}
Code for new page controller
[HttpGet]
public ViewResult displayItemSelected(int? id)
{
if (id == null)
{
return HttpNotFoundResult();
}
PropertyDetailsModel propertyModel;
propertyModel.Id
}
答案 0 :(得分:0)
如果您将模型直接传递给View
:
var propertyModel = new PropertyDetailsModel();
return View(propertyModel);
然后,在RazorPage中(我相信Model
的类型为object
,因此需要提升/发布为预期的类型)
<p>Property Name: @{((PropertyDetailsModel)Model).Name}</p>
或者,您可以像这样将任意数据传递到视图页:
ViewData
和ViewBag
均可从Razor /查看页面(.cshtml)中访问。 ViewData是Dictionary<string, object>
,ViewBag是dynamic
。
如果您只是将模型放在ViewBag中:
var propertyModel = new PropertyDetailsModel();
ViewBag.PropertyModel = propertyModel;
return View();
RazorPage将能够像这样访问ViewBag
并通过扩展名ViewBag.PropertyModel
:
<p>Property Name: @{ViewBag.PropertyModel.Name}</p>