DisplayNameFor() 来自模型中的列表 Object

作者:编程家 分类: c++ 时间:2026-01-02

在开发Web应用程序时,我们经常需要从模型中获取数据并在视图中进行显示。在ASP.NET MVC框架中,有一种方便的方法可以通过使用`DisplayNameFor()`方法来获取模型中属性的显示名称。这个方法可以帮助我们生成可读性更高的标签,并且可以轻松地进行本地化处理。

假设我们有一个名为`Object`的模型类,其中包含了一些属性,我们希望在视图中显示这些属性的名称。我们可以使用`DisplayNameFor()`方法来获取属性的显示名称,并将其用作标签的文本。

下面是一个简单的例子,展示了如何使用`DisplayNameFor()`方法来生成标签:

csharp

public class Object

{

[DisplayName("编号")]

public int Id { get; set; }

[DisplayName("名称")]

public string Name { get; set; }

[DisplayName("价格")]

public decimal Price { get; set; }

}

// 在视图中使用 DisplayNameFor() 方法生成标签

@model List

@foreach (var item in Model)

{

}

在上述示例中,我们定义了一个名为`Object`的模型类,其中包含了三个属性:`Id`、`Name`和`Price`。每个属性都使用`DisplayName`特性来指定其显示名称。

在视图中,我们使用`DisplayNameFor()`方法来生成每个属性的标签。通过使用lambda表达式,我们可以将属性与标签关联起来。然后,我们使用`@Html.DisplayNameFor()`方法将属性的显示名称作为标签的文本。

此外,我们还在每个标签的下方添加了一个只读的文本框,用于显示属性的值。这只是一个简单的示例,您可以根据自己的需求进行更多的定制。

案例代码

下面是一个完整的示例代码,展示了如何使用`DisplayNameFor()`方法生成标签:

csharp

using System.Collections.Generic;

using System.ComponentModel;

public class Object

{

[DisplayName("编号")]

public int Id { get; set; }

[DisplayName("名称")]

public string Name { get; set; }

[DisplayName("价格")]

public decimal Price { get; set; }

}

public class HomeController : Controller

{

public ActionResult Index()

{

var objects = new List

{

new Object { Id = 1, Name = "Object 1", Price = 10.99m },

new Object { Id = 2, Name = "Object 2", Price = 19.99m },

new Object { Id = 3, Name = "Object 3", Price = 24.99m }

};

return View(objects);

}

}

在上述代码中,我们定义了一个`Object`类作为模型,其中包含了三个属性:`Id`、`Name`和`Price`。每个属性都使用`DisplayName`特性来指定其显示名称。

在控制器中,我们创建了一个`List`对象,并将其传递给视图。在视图中,我们使用`DisplayNameFor()`方法生成每个属性的标签,并将属性的值显示在只读文本框中。

这是一个简单的示例,您可以根据自己的需求进行更多的定制。`DisplayNameFor()`方法使得在ASP.NET MVC应用程序中生成标签变得非常简单和可靠。