为什么View需要使用语句

时间:2014-03-26 18:43:59

标签: asp.net-mvc asp.net-mvc-5

我在我创建的视图中有以下内容,但无法识别model.UserName

@model AcmeMVC.Models.SelectUserRolesViewModel
@{
    ViewBag.Title = "User Roles";
    Layout = "~/Views/Shared/_Layout.cshtml";
}

<h2>Roles for user @Html.DisplayFor(model => model.UserName)</h2>

如果我添加:@using AcmeMVC.Models它会起作用。

但是,我在web.config文件夹的Views中有此条目:

<pages pageBaseType="System.Web.Mvc.WebViewPage">
  <namespaces>
    .....
    <add namespace="AcmeMVC" />
    <add namespace="AcmeMVC.Models" />
    .....

我认为这样做会使我不需要using声明,但我仍然这样做。

有没有人知道我在这里做错了什么?

1 个答案:

答案 0 :(得分:1)

修改此行

<h2>Roles for user @Html.DisplayFor(model => model.UserName)</h2>

所以就像这样

<h2>Roles for user @Html.DisplayFor(m=>m.UserName)</h2>

@model是指示您希望在视图中使用强类型模型类的指令。它不是对象实例的引用。要访问View中的模型,您可以使用表达式(即m=>m.Property