2014-02-17 59 views
0

我想呈现htmlAttribute作为一个布尔值,我的代码是:错误的渲染,TextBoxFor方法htmlAttributes

@Html.TextBoxFor(m => m, new Dictionary<string, object> 
{ 
    { "data-val", true } 
}) 

但结果是:

<input data-val="True" id="Category_Name" name="Category.Name" type="text" value=""> 

为什么渲染为一个字符串? 我怎样才能呈现为布尔这样的:

<input data-val=true id="Category_Name" name="Category.Name" type="text" value=""> 

回答

1

它只是调用给定对象这是布尔true或false(大写)在ToString方法。所以改变给定的例子,以:

@Html.TextBoxFor(m => m, new Dictionary<string, object> 
{ 
    { "data-val", "true" } 
}) 
+0

但我需要为布尔原因jquery.unobtrusive解析鉴于元件那样: $(选择器).find(“:输入[数据-VAL =真] “).each(function(){$ jQval.unobtrusive.parseElement(this,true); }); – MuriloKunze

+1

不存在html属性类型。所以没有办法将属性类型定义为'布尔'。 data-val = true是不正确的(但它可能工作)。 data-val =“true”是正确的。你有没有用这个检查你的解决方案? –

+0

是的,当我使用data-val =“true”时,不引人注意的找不到任何元素。它只适用于data-val = true。 – MuriloKunze