【发布时间】:2012-12-27 18:52:33
【问题描述】:
我正在尝试将"popover" 与"@Html.PasswordFor" MVC 辅助元素一起使用,但只显示标题而不显示内容。
代码是:
@Html.PasswordFor(model => model.Password, new {rel = "popover",
data_original_title = "Choose new password",
data_content = "minimum 8 chars"})
它会生成这样的 HTML 代码:
<input rel="popover" data-original-title="Choose new password"
data-content="minimum 8 chars" id="Password" name="Password"
type="password"
/>
Javascript 代码:
$(document).ready(function () {
$("#Password").popover({ trigger: 'hover' });
});
该代码有效,但仅显示标题(“选择新密码”)而不显示内容(“最少 8 个字符”)
我尝试直接编写 HTML 代码,它工作正常,而且是相同的代码!!!但使用 Razor 语法不起作用。
谁能帮帮我? 我添加了一张带有结果的图片
【问题讨论】:
-
如果您直接使用 HTML 并且它可以工作,但它不适用于 Razor,那么 Razor 必须 不会生成您认为的 HTML。请检查 HTML 页面的源代码并将生成的标记与您知道有效的副本进行比较。不同之处在于你的问题。
-
Razor生成的代码一模一样,其实我复制了Razor生成的代码,进行测试。使用的 HTML 代码是 Razor 生成的代码(并且工作正常)
-
不是我不相信你,只是看起来不太可能。如果您说的是真的,则意味着a)您的浏览器有某种方式知道什么技术正在为标记提供服务(它没有)并选择采取不同的行动,或者b)您的浏览器在呈现时间歇性地表现不同相同的标记(不太可能)。更可能的原因是标记略有不同。我现在没有时间自己尝试这个,但如果仍然没有解决方案,我今晚会自己尝试。
-
我自己对此进行了测试,一切都按预期工作。我确保我使用的是最新的 jQuery (1.8.3) 和最新的引导程序 (2.2.2),并确保我的页面上存在 JS 块。我对您的唯一建议是使用 Firebug 来确保您的所有资源文件(JS 和 CSS)都存在并查找 CSS 故障或 JS 错误。除此之外,您发布的代码可以正常工作;您的问题必须超出您的问题所包含的范围。祝你好运!
-
您是否检查了绑定弹出框时的 data-content 值是多少?像 alert($('#Password').data('content'));只是为了确保 MVC 不显眼的东西不会覆盖这个值。
标签: asp.net-mvc asp.net-mvc-3 css twitter-bootstrap