gpt4 book ai didi

asp.net-mvc - MVC4 Razor View IntelliSense 问题

转载 作者:行者123 更新时间:2023-12-02 00:06:47 24 4
gpt4 key购买 nike

解释:

View 是使用默认脚手架类型生成的:“具有读/写操作和 View 的 MVC Controller ,使用 Entity Framework ”

我想知道为什么“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>

最佳答案

有点让我感到奇怪,但由于它是一个 IEnumerable,您当时只能使用 Count() 之类的东西。

但是,您可以使用 @Html.LabelFor(m => m.FirstOrDefault().UserName) 所以现在您有一个带有 intellisense 的实例。

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

@model IEnumerable<Foo>
@{
@header = Model.FirstOrDefault();
}

@* ... *@
<th>@Html.LabelFor(x => header.FirstName)</th>
<th>@Html.LabelFor(x => header.LastName)</th>
@* ... *@

关于asp.net-mvc - MVC4 Razor View IntelliSense 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17888009/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com