任何人都知道如何在使用时指定文本Html.LabelFor(c=>c.MyField).它MyField可能不是一个在屏幕上显示的合适名称,你可能想要"超级神奇场",但似乎没有任何重载.
有任何想法吗?
我正在使用System.ComponentModel.DataAnnotations我的Entity Framework 4.1项目进行验证.
例如:
public class Player
{
[Required]
[MaxLength(30)]
[Display(Name = "Player Name")]
public string PlayerName { get; set; }
[MaxLength(100)]
[Display(Name = "Player Description")]
public string PlayerDescription{ get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我需要检索Display.Name注释值以在消息中显示它,例如所选的"玩家名称"是Frank.
================================================== ===============================
我需要检索注释的另一个例子:
var playerNameTextBox = new TextBox();
playerNameTextBox.MaxLength = GetAnnotation(myPlayer.PlayerName, MaxLength);
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
我在App_GlobalResources文件夹中有特定于文化的资源文件.现在我需要从此资源文件中读取DisplayName属性的值.我在用:
[Display(Name = "MerchantName", ResourceType = typeof(Resource))]
public string Merchant { get; set; }
Run Code Online (Sandbox Code Playgroud)
但我收到以下错误:
无法检索属性"名称",因为本地化失败.类型"Resources.Resource"不是公共的,或者不包含名为"MerchantName"的公共静态字符串属性.
我该如何解决这个问题?
我有以下代码:
[Required(ErrorMessage = MessageModel.translateMessage("required")))]
[Display(Name= MessageModel.translateMessage("id"))]
public string user_id { get; set; }
Run Code Online (Sandbox Code Playgroud)
我试图使错误消息动态,但我在编译时得到错误:
"An attribute argument must be a constant expression , typeof expression or array creation expression of an attribute parameter type."
解决这个问题的任何方法?
我的问题是我的头衔.
Localization - how to get the client locale in asp.net mvc ?
Run Code Online (Sandbox Code Playgroud)
我看到一些基于url路由的帖子,有什么方法可以从浏览器或从请求到服务器和进程获取数据.有没有办法从asp.net获取浏览器区域设置.我正在创建自定义显示属性来处理本回答中提到的本地化.
这是因为我使用DB来保存我的本地化值.我的计划是获取数据并使用Display Attribute,它将显示本地值.我需要浏览器的语言环境.因此,在基于它进行渲染之前,是否可以获取浏览器的区域设置和查询.
提前致谢.
我试图弄清楚如何在我的MVC 2 ViewModel中使用DisplayAttribute来使用Html.LabelFor()帮助器.
也不
public class TestModel
{
[Display(ResourceType = typeof(Localization.Labels))]
public string Text { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
也不
public class TestModel
{
[Display(Name = "test")]
public string Text { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
似乎工作.本地化必需属性按预期工作:
[Required(ErrorMessageResourceName = "Test", ErrorMessageResourceType = typeof(Localization.Labels))]
Run Code Online (Sandbox Code Playgroud)
我正在使用VS2010 RC.有人跑了吗?
首先,我想澄清一下,我目前正在使用ASP.NET MVC的Model实体,ViewModel因为我的项目基于MVCVM,所以我不仅仅是混淆了两者.
无论如何,MVC会自动为ViewModel实体创建一些属性,如下所示(来自向导,本地化为意大利语)
public class LoginModel
{
[Required]
[Display(Name = "Nome utente")]
public string UserName { get; set; }
[Required]
[DataType(DataType.Password)]
[Display(Name = "Password")]
public string Password { get; set; }
[Display(Name = "Memorizza account")]
public bool RememberMe { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
替换Display属性[Display(Name = LoginViewModelResources.lblUsername)]会导致编译错误:"参数必须是常量表达式,类型表达式或矩阵创建表达式".简而言之,属性引用是禁止的.
Razor视图使用以下标记生成HTML
@Html.LabelFor(m => m.UserName)
@Html.TextBoxFor(m => m.UserName)
@Html.ValidationMessageFor(m => m.UserName)
Run Code Online (Sandbox Code Playgroud)
如何本地化ViewModel以便在前端显示正确的消息?