【问题标题】:MVC4 Razor View IntelliSense IssuesMVC4 Razor View IntelliSense 问题
【发布时间】:2018-05-16 13:39:43
【问题描述】:

解释:

使用默认的脚手架类型生成视图:“具有读/写操作和视图的 MVC 控制器,使用实体框架”

我想知道为什么 "DOES NOT SHOW UP INTELLISENSE"更改强类型模型后不显示智能感知,即使您改回来。

<table>
<tr>
    <th>
        @Html.DisplayNameFor(model => model.UserName) <- DOES NOT SHOW UP (INTELLISENSE)unless strongly typed against a NON-Collection must remove lambda expression
    </th>
    <th>
        @Html.DisplayNameFor(model => model.)<- DOES NOT SHOW UP (INTELLISENSE) unless strongly typed against a NON-Collection must remove lambda expression
    </th>
    <th>
        @Html.DisplayNameFor(model => model.)<- DOES NOT SHOW UP (INTELLISENSE)unless strongly typed against a NON-Collection must remove lambda expression
    </th>
    <th>

    </th>
</tr>


@foreach (var item in Model) {
<tr>
    <td>
       @Html.DisplayFor(modelItem => item.UserName)<- SHOWS INTELLISENSE
    </td>
    <td>
        @Html.DisplayFor(modelItem => item.FirstName)<- SHOWS INTELLISENSE
    </td>
    <td>

【问题讨论】:

    标签: asp.net-mvc razor


    【解决方案1】:

    我也有点奇怪,但因为它是 IEnumerable,所以那时你只有 Count() 这样的东西可用。

    但是,您可以使用@Html.LabelFor(m =&gt; m.FirstOrDefault().UserName),所以现在您有了一个带有智能感知的实例。

    旁注:我已经看到开箱即用的 MVC 脚手架可以使用实例属性(尽管它是 IEnumerable),我唯一的猜测是有一个以这种方式工作的重载,或者有 MVC 侏儒将它连接起来。无论哪种方式,使用FirstOrDefault() 可能会更好。作为捷径,我倾向于在页面顶部声明一个元素并将其用于标题。例如

    @model IEnumerable<Foo>
    @{
     @header = Model.FirstOrDefault();
    }
    
    @* ... *@
      <th>@Html.LabelFor(x => header.FirstName)</th>
      <th>@Html.LabelFor(x => header.LastName)</th>
    @* ... *@
    

    【讨论】:

    • 为什么默认?返回 null 时 header.FirstName 将抛出异常!
    【解决方案2】:

    它没有显示,因为现在您的收藏中有多个用户个人资料。

    @foreach (var user in Model)
    {
        @Html.DisplayNameFor(model => model.Name)
    }
    

    【讨论】:

    • 抱歉,您能再解释一下吗?我以 CopyUserProfiles 为例。 (在上面的示例代码中)
    • @DonThomasBoyle 在控制器中显示您传递给视图的内容。你传递一个用户还是一组用户?
    • @Steve 你去吧,上下文,模型,视图,控制器代码,看看你现在能不能找出问题所在?
    • @DonThomasBoyle 我是对的,您返回的是用户列表,而不是一个用户,因此您需要遍历它们以显示它们的值。
    猜你喜欢
    • 2012-06-27
    • 1970-01-01
    • 2015-04-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多