民间,
我是MVC 2新手,并坚持这个问题:
AccountModuls.cs
public class LogOnModel
{
[Required]
[DisplayName("User name")]
public string UserName { get; set; }
…
}
LogOn.aspx
<%: Html.LabelFor(m => m.UserName) %>
文本“用户名”将最终显示在网站上 - 基于我的定义
[DisplayName(“用户名”)]。
没问题。
但是如何在AccountController.cs中更改此文本?
public ActionResult LogOn()
{
return View();
}
答案 0 :(得分:6)
您不能:)您必须更改类的DisplayName属性,以便.LabelFor帮助程序构造标签。你当然可以自己写出标签的HTML,如果你想让它成为别的东西。
不明白为什么你想要将Displayname从一页改为另一页?我 误解了什么?
编辑:
自定义displayname属性:
public class MyDisplayName : DisplayNameAttribute
{
public int DbId { get; set; }
public MyDisplayName(int DbId)
{
this.DbId = DbId;
}
public override string DisplayName
{
get
{
// Do some db-lookup to retrieve the name
return "Some string from DBLookup";
}
}
}
public class TestModel
{
[MyDisplayName(2)]
public string MyTextField { get; set; }
}