首页 新闻 赞助 找找看

如何在匿名类型成员的名称中使用"-"符号。

0
悬赏园豆:50 [已解决问题] 解决于 2011-04-28 06:56

2011-08-29补充:
传送门
上文中有这样一句话:
Eg:     new { data_abc = "def" } will be generated as data-abc="def".
也就是说,用下划线做html的匿名属性名称,会自动生成为横线的html元素的属性名称。

 

以下是原问题内容:

我们在Asp.net MVC中使用Html.Textbox等扩展的时候,经常要用到HttpAttributes的匿名类型参数。而在前台数据验证、绑定时经常用到类似于“data-content"、"data-val"等属性。

整个Tag看起来像这样子:

<input class="text-box single-line" data-val="true" data-val-required="名称 字段是必需的。" id="Name" name="Name" type="text" value="张三" />

问题就这在这里,我在MVC中,希望用

Html.TextBox("Name","张三", new { data-val = "false" });

来强制指定data-val为“false”(注:这只是一个例子,并不代表我只是针对这个名为”data-val"的属性。)

事实上,VS2010 IDE会提示如下错误:

只能从不带参数的简单名或限定名中推断匿名类型成员的名称。

言下之意就是不能使用"-"符号(减号)。

如何解决?

yexuan的主页 yexuan | 初学一级 | 园豆:32
提问于:2011-04-24 14:35
< >
分享
其他回答(2)
1

确实不行,但我记得TextBox扩展方法有一个重载是接受一个字典的,用字典就行

收获园豆:50
Gray Zhang | 园豆:17610 (专家六级) | 2011-04-24 17:04
1

看了下源码

property.Name.Replace('_', '-'), property.GetValue(htmlAttributes)

 

要用_代替...

Richwong | 园豆:120 (初学一级) | 2011-10-17 15:29

此乃正解,源码在哪里看的?

支持(0) 反对(0) 火星大能猫 | 园豆:225 (菜鸟二级) | 2016-08-03 11:04
0

@Richwong 

牛B

逆心 | 园豆:160 (初学一级) | 2014-11-25 10:58
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册