c# - ASP.NET MVC 2 显示()

标签 c# asp.net-mvc asp.net-mvc-2

我正在查看新版本的 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/

相关文章:

c# - 使用 razor if 语句时出现 NullReferenceException

asp.net-mvc - asp.net mvc 设置数字格式默认十进制千位分隔符

asp.net-mvc - Entity Framework 以及代码优先场景中的成员资格

asp.net-mvc-2 - 处理多个提交按钮

c# - 是否可以进行 MongoDB 批量更新? C# 驱动程序

c# - Wix - 如何在安装后从安装目录运行 exe 文件?

c# - 无法使SQL Server Compact 3.5/4与ASP .NET MVC 2一起使用

c# - ASP.NET MVC2 从母版页调用服务方法?

c# - 如何在 C# 中将 LParam 转换为 Struct

c# - Csharp windows 应用程序 MySql 连接