ASP.NET MVC 2 DisplayFor()
-
13-09-2019 - |
题
我期待在ASP.NET MVC的新版本(在这里看到更多的细节,如果你还没有看到它的话),我有物体的显示内容一些非常基本的麻烦。
在我的控制我有类型Person
,其中我传递到视图中ViewData.Model
的对象。一切都很好,到目前为止,我可以提取在视图对象准备好显示。我不明白不过,就是我需要调用Html.DisplayFor()
方法,以数据到达屏幕。我试过以下...
<%
MVC2test.Models.Person p = ViewData.Model as MVC2test.Models.Person;
%>
// snip
<%= Html.DisplayFor(p => p) %>
,但我得到以下信息:
CS0136:命名为“P”的局部变量不能在此范围内声明,因为它会给予不同的意义,“P”,这已经是一个“父母或电流”范围用来表示别的东西。
我知道这是不是我应该做的事情 - 我知道,重新定义一个变量会产生这个错误,但我不知道如何从控制器访问对象。所以我的问题是,如何通过所述对象到所述视图,以显示其属性?
N.B。我要补充一点,我对这个在我有限的业余时间阅读了,所以这是完全有可能我已经错过了一些基本的东西。
TIA
解决方案
Html.DisplayFor
可以用来只有当你的看法是强类型的,和它的作品传递给视图对象。
所以,你的情况,你必须与该类型的人作为它的型号类型(例如something.something.View<Person>
)(对不起,我不记得确切的名字,但是这应该是有意义)打电话时,声明你的视图,然后Html.DisplayFor(p => p)
,p
将采取传递模型(人)值的值到视图中。
希望有所是有意义的。
其他提示
p是已经变量名;和变量名称必须是在当前整个范围内是唯一。因此displayFor(P => P)是无效的,因为你宣布一个新的变量“P”在那里。这样,编译器不知道阉羊使用您的人员P,或第(p =>)变量。
因此,只要其重命名为
<%= Html.DisplayFor(person => person) %>
不隶属于 StackOverflow