在C#MVC中显示由控制器返回的对象

时间:2016-05-01 10:10:00

标签: c# asp.net-mvc

我是C#MVC的初学者,但我正在做一些项目。

我在互联网上搜索过,发现没有符合我问题的解决方案。没有一个问题解决了我的问题。问题是:如何遍历每个项目(如下面的代码片段中所示)并在视图中显示它们。

项目模型代码:

 public class AddProjectViewModel
    {
        [Required]
        [StringLength(50, ErrorMessage = "Project name length is too long. Maximum lenght is 50 char.")]
        public string ProjectName { get; set; }

        [Required]
        [StringLength(50, ErrorMessage = "Description length is too long. Maximum lenght is 50 char.")]
        public string Description { get; set; }
    }

项目控制器代码:

public ActionResult Index()
    {
        var loggedUser = _workContext.GetUserId();

        var userProjects = _userProjectsRepository.GetAllEntity().Where(x => x.UserId == loggedUser);

        var model = new Models.ProjectViewModels.ShowUserProjectsViewModel();

        model.Projects = userProjects;

        return View(model);
    }

这个想法是:当页面加载时,显示登录用户可以看到的每个项目。

我尝试过类似的东西,但它不起作用:

@model IEnumerable<CarPooling.Website.Models.ProjectViewModels>

@{
    ViewBag.Title = "Index";
}

<h2>Index</h2>

@foreach (var item in Model)
{
    <div>
        <p>@Html.DisplayFor(m=>item)</p>
    </div>
}

请耐心等待,并感谢您的每一个回复。

1 个答案:

答案 0 :(得分:1)

在您的控制器中,您将转到查看DisplayMetrics metrics = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(metrics); float xCoefficient = captureBitmapWidth / metrics.widthPixels; float yCoefficient = captureBitmapHeight / metrics.heightPixels; 对象,但随后在.cshtml视图中将模型声明为ShowUserProjectsViewModel

使用您在控制器中传递的相同模型类型,并且还要记住使用ViewModel类中定义的相同属性,如下所示:

IEnumerable<CarPooling.Website.Models.ProjectViewModels>