[asp.net-mvc]为什么视图需要使用语句

发布时间: 2016/10/9 6:14:52
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我有以下几点在视图中创建的但 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:

修改这条线

<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 )

赞助商