我正在尝试在我的 View 中注册一些 javascript,但我似乎遇到了问题。在我的母版页底部,我有:
@(
Html.Telerik().ScriptRegistrar()
.OnDocumentReady(@<text>
// Open the hidden window when the feedback-link is clicked
$('#feedback-link').click(function(e) {
e.preventDefault();
$('#FeedbackWindow').data('tWindow').center().open();
});
</text>)
)
在我看来,我想要一些特定于 View 的 javascript,所以我有:
@(Html.Telerik().ScriptRegistrar().OnDocumentReady(
@<text>
// Upon contact selection change, update the contact sidebar summary
$('#contactlist').change(function() {
alert('Selected id' + $(this).val());
});
</text>)
)
不幸的是,这导致我的视图的 javascript 在 MVC View 和呈现最终页面时在我的母版页中声明。我怎样才能让它只注册一次脚本?
最佳答案
正如我在 forum reply 中所说ScriptRegistrar 被输出两次,因为被告知。 @()
Razor 表达式将输出其内容,而 @{ }
将被执行。在您的情况下,您需要对特定脚本使用 @{ }
:
@{ Html.Telerik().ScriptRegistrar().OnDocumentReady(
@<text>
// Upon contact selection change, update the contact sidebar summary
$('#contactlist').change(function() {
alert('Selected id' + $(this).val());
});
</text>);
}
另请注意,@{ }
block 需要一个分号。
关于c# - Telerik MVC ScriptRegistrar 复制 javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5864506/