我正在查看新版本的 ASP.NET MVC(如果您还没有看到它,请参阅此处了解更多详细信息)并且我在显示对象内容时遇到了一些非常基本的问题。
在我的控件中,我有一个 Person
类型的对象,我将其传递给 ViewData.Model
中的 View 。到目前为止一切都很好,我可以在 View 中提取对象以供显示。但我不明白的是,我需要如何调用 Html.DisplayFor()
方法才能将数据显示在屏幕上。我尝试了以下...
<%
MVC2test.Models.Person p = ViewData.Model as MVC2test.Models.Person;
%>
// snip
<%= Html.DisplayFor(p => p) %>
但我收到以下消息:
CS0136: A local variable named 'p' cannot be declared in this scope because it would give a different meaning to 'p', which is already used in a 'parent or current' scope to denote something else
我知道这不是我应该做的 - 我知道重新定义一个变量会产生这个错误,但我不知道如何从 Controller 访问该对象。所以我的问题是,如何将对象传递给 View 以显示其属性?
注意我应该补充一点,我是在有限的业余时间阅读这篇文章,所以我完全有可能错过了一些基本的东西。
TIA
最佳答案
Html.DisplayFor
只能在您的 View 是强类型时使用,并且它适用于传递给 View 的对象。
因此,对于您的情况,您必须将 Person 类型声明为其模型类型的 View (例如 something.something.View<Person>
)(抱歉,我不记得确切的名称,但这应该是有道理的),然后打电话时 Html.DisplayFor(p => p)
, p
会将传递的模型(Person)值的值带入 View 。
希望这是有道理的。
关于c# - ASP.NET MVC 2 显示(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1466593/