我正在尝试剃刀中的简单连接。 当我在我的模型RAZOR中添加它时,我得到了各种各样的线条:
<input type="checkbox" id="ck1-@track.TrackID"
onclick="$('#ck2-@(track.TrackID)').prop('checked', $(this).prop('checked'))" />
然而,它输出完美的OUTPUT:
<input type="checkbox"
id="ck1-500004524"
onclick="$('#ck2-500004524').prop('checked', $(this).prop('checked'))">
我正在尝试获取输出中的确切html,但没有所有的squigly。 我理解这很可能在其他帖子中有所涉及,但我仍然试图掌握Razor连接字符串的方式,每次我需要它时似乎都不同。
提前谢谢你,
答案 0 :(得分:2)
如前所述,Razor对将变量注入html属性并不友好。部分原因是在Mark-up中链接事件处理程序是一种过时的做法。
最佳做法是“不引人注目的方式”
$(function () {
$('#').click(function ()
{ $('#ck2-@(track.TrackID)').prop('checked', $(this).prop('checked')) })
})
答案 1 :(得分:0)
将@code放在html / javascript字符串中,例如“@code”或“@code”几乎总会给你一些曲折的线条。
答案 2 :(得分:0)
在我混合使用HTML标记的行上。 Razor语法,我用@:
前言,我发现它解决了很多问题。
这个片段是个好建议:
必要时,您还可以使用a显式范围代码表达式 @(表达式)语法,以提供更清晰的意图,如 以及从静态标记中消除代码语句的歧义。
答案 3 :(得分:0)
感谢所有帮助过的人,其中一个答案表明,'unobrusive方式'比将javascript硬编码到元素中更好。以下是我提出的建议:
<input type="checkbox" class="ckSelectCol" />
$(function () {
$('.ckSelectCol').each(function () {
$(this).change(function () {
dupCheckBox(this);
});
});
});
这样做的是找到所有具有类ckSelectCol并添加更改事件处理程序的复选框,更改事件处理程序是我希望在更改时调用的函数。
这可以通过多种方式完成,我选择这种方式,因为它将javascript与页面分离,可以轻松地重复使用并使页面更轻。
如果有人有任何建议,请回复。
我再次感谢我在这篇文章中收到的所有意见。
-Edward