2016-11-11 41 views
-1

我有一个基本的密码强度指示器。如何在剃须刀中设置数据显示器

<input type="password" id="myElement1" size="40" class="left" data-display="myDisplayElement1" /> 
<div class="left" id="myDisplayElement1"></div> 

我有JS Script照顾所有的逻辑。并且data-display div显示消息密码是弱还是强。但我想将上面的代码转换成Razor。下面是我到现在为止的内容。

<div class="form-group"> 
    @Html.LabelFor(model => model.NewPassword, htmlAttributes: new { @class = "control-label col-md-2" }) 
    <div class="col-md-10"> 
     @Html.EditorFor(model => model.NewPassword, new { htmlAttributes = new { @class = "form-control", id = "myElement1" } }) 
     <div class="left" id="myDisplayElement1"></div> 
     @Html.ValidationMessageFor(model => model.NewPassword, "", new { @class = "text-danger" }) 
    </div> 
</div> 

问题:一切正常,但我无法将数据显示属性放入剃须刀中。我需要把它放在哪里。但是由于数据显示没有设置,我无法以div的形式显示用户的密码强度。

我希望能够做一些类似下面

@Html.EditorFor(model => model.NewPassword, new { htmlAttributes = new { @class = "form-control", id = "myElement1" , data-display = "myDisplayElement1"} }) 

data-display给我的错误。

错误

无法解析符号data错误来在那里我已经加入data-display的地方。

+2

请阅读[问],分享你的研究成果,并在下次提到确切的错误。 – CodeCaster

+0

我已添加错误消息。我也把代码片段。如果您满意,请拿出反对票。谢谢! – Unbreakable

回答

1

连字在匿名对象中无效。但是,知道有时需要使用连字符添加属性,Razor助手将自动用属性名称中的连字符替换下划线。因此,您可以使用data_display而不是data-display来完成您所需的操作。

+2

这是在[重复](http://stackoverflow.com/questions/2897733/hyphenated-html-attributes-with-asp-net-mvc),处理这个问题的许多问题之一。你确定它是否需要在网站上存在很多次的答案的另一个版本? :) – CodeCaster

+0

@Chris:非常感谢你的回答。 CodeCaster:感谢您指导我如何正确提问。 – Unbreakable