从foreach循环中显示许多图片后,如何在视图数据中显示获取项目ID

时间:2019-10-25 19:05:48

标签: c# asp.net-mvc

嗨,我有一个名为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
   } 

1 个答案:

答案 0 :(得分:0)

如果您将模型直接传递给View

var propertyModel = new PropertyDetailsModel();
return View(propertyModel);

然后,在RazorPage中(我相信Model的类型为object,因此需要提升/发布为预期的类型)

<p>Property Name: @{((PropertyDetailsModel)Model).Name}</p>

或者,您可以像这样将任意数据传递到视图页:

ViewDataViewBag均可从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>