jQuery在使用@Html.Raw生成的视图中无法识别
我有一个包含jQuery的Razor视图,该视图上的JavaScript函数识别jQuery。我还有多个div元素,它们在这个视图中包含其他视图htmljQuery在使用@Html.Raw生成的视图中无法识别,jquery,razor,model-view-controller,Jquery,Razor,Model View Controller,我有一个包含jQuery的Razor视图,该视图上的JavaScript函数识别jQuery。我还有多个div元素,它们在这个视图中包含其他视图html @foreach(Record record in records) { <div>@Html.Raw(record.RecordHtml)</div> } @foreach(记录中的记录) { @Html.Raw(record.RecordHtml) } 如果我在foreach的div中包含一个JavaSc
@foreach(Record record in records)
{
<div>@Html.Raw(record.RecordHtml)</div>
}
@foreach(记录中的记录)
{
@Html.Raw(record.RecordHtml)
}
如果我在foreach的div中包含一个JavaScript函数,它将无法识别jQuery
@foreach(Record record in records)
{
<div>@Html.Raw(record.RecordHtml)</div>
<script>
function getElement()
{
$("#recordId");
}
</script>
}
@foreach(记录中的记录)
{
@Html.Raw(record.RecordHtml)
函数getElement()
{
$(“#记录ID”);
}
}
解决方法是在每次迭代中都包含jQuery,但是如果jQuery已经包含在主视图中,我不理解为什么需要这样做
有人能解释一下为什么每个div都需要自己的jqueryinclude吗?有一个误解。 显然,在每次迭代中都不需要jquery包含。 要证明这一点,请将代码更改为
<script src="path/to/jquery.js" type="text/javascript"></script>
@foreach(Record record in records)
{
<div>@Html.Raw(record.RecordHtml)</div>
<script>
function getElement()
{
$("#recordId");
}
</script>
}
@foreach(记录中的记录)
{
@Html.Raw(record.RecordHtml)
函数getElement()
{
$(“#记录ID”);
}
}
注意,jquery显式包含在for循环之前
这里真正的问题是在插入这些脚本之前没有加载jquery。是的,jQuery最终可能会被加载
但是,您需要检查主布局和局部布局的加载顺序和使用情况,以确保jQuery在加载之前已加载。感谢您的回答,通过遵循此建议,我发现问题根本不在于include语句。问题与切换jQuery版本、更改解决方案的结构以及从数据库中保存和检索过时的视图代码有关。