Zom*_*eep 2 c# asp.net-mvc asp.net-mvc-2
我正在看新版本的ASP.NET MVC(如果你还没有看到它,请参阅这里了解更多细节)我在显示对象内容时遇到了一些非常基本的麻烦.
在我的控制中,我有一个类型的对象Person,我将其传递给视图ViewData.Model.到目前为止一切都很好,我可以在视图中提取准备显示的对象.我没有得到的是,我需要调用Html.DisplayFor()方法以获取数据到屏幕.我试过以下......
<%
MVC2test.Models.Person p = ViewData.Model as MVC2test.Models.Person;
%>
// snip
<%= Html.DisplayFor(p => p) %>
Run Code Online (Sandbox Code Playgroud)
但我收到以下消息:
CS0136:名为'p'的局部变量不能在此范围内声明,因为它会给'p'赋予不同的含义,'p'已在'父或当前'范围内用于表示其他内容
我知道这不是我应该做的 - 我知道重新定义变量会产生这个错误,但我不知道如何从控制器访问该对象.所以我的问题是,如何将对象传递给视图以显示其属性?
NB我应该补充说,我正在有限的业余时间阅读这篇文章,所以我完全有可能错过了一些基本的东西.
TIA
Html.DisplayFor 只有在View类型为强类型时才能使用,并且它适用于传递给View的对象.
因此,对于您的情况,您必须使用Person类型作为其模型类型声明您的View(例如something.something.View<Person>)(抱歉,我不记得确切的名称,但这应该有意义),然后在调用时Html.DisplayFor(p => p),p将采取传递的模型(Person)值的值到视图中.
希望有道理.