Jquery .load()在本地工作,但不在服务器上
问题描述:
我不太清楚是什么导致了这里的问题。我正在尝试使用.load()函数将视图加载到Jquery对话框中。在我的本地机器上,一切正常,但在服务器上,最终创建的URL不正确,因为它将该参数添加到URL两次。Jquery .load()在本地工作,但不在服务器上
链接从webgrid中是动态的,这是@ item.GrouperIDForLookip的来源。
<div id="groupersDialog"></div>
<a id="[email protected]" class="grouper">Groupers</a>
...
<script>
$(".grouper").on("click", function() {
var id = $(this).attr("id").split("_")[1];
$('#groupersDialog').dialog({
autoOpen: true,
width: 1000,
height: 600,
resizable: true,
draggable: true,
title: "Groupers",
model: true,
show: 'slide',
closeText: 'x',
dialogClass: 'alert',
closeOnEscape: true,
open: function() {
//Load the Partial View Here using Controller and Action
$('#groupersDialog').load('/Home/_Groupers/?GroupIDForLookup=' + id);
},
close: function() {
$(this).dialog('close');
}
});
});
</script>
在我的本地机器上,一切正常,负载的URL正常工作。但是在服务器上运行时,最终创建的URL是%2fHome%2f_Groupers%2f%3fGroupIDForLookup%3d2&GroupIDForLookup=2
,这使GroupIDForLookup翻倍,给了我一个GET 404(找不到页面)。
有人碰巧知道会导致这种情况发生吗?如果你需要更多的代码,请让我知道。
答
请在下面的代码中更新加载函数中的URL。
<div id="groupersDialog"></div>
<a id="[email protected]" class="grouper">Groupers</a>
...
<script>
$(".grouper").on("click", function() {
var id = $(this).attr("id").split("_")[1];
$('#groupersDialog').dialog({
autoOpen: true,
width: 1000,
height: 600,
resizable: true,
draggable: true,
title: "Groupers",
model: true,
show: 'slide',
closeText: 'x',
dialogClass: 'alert',
closeOnEscape: true,
open: function() {
//Load the Partial View Here using Controller and Action
$('#groupersDialog').load(
'@URL.Action("_Groupers", "Home")?GroupIDForLookup' + id);
},
close: function() {
$(this).dialog('close');
}
});
});
</script>
我看不出Javascript是如何做到这一点的。我怀疑这个问题是服务器上的重写规则。 – Barmar
问题是在加载函数中的URL,请尝试使用@ URL.Action(“_ Groupers”,“Home”)?GroupIDForLookup = id –
@NagarajRaveendran这实际上是这样做的。我尝试了一些类似的东西,但是本地故障。如果您愿意,请将此作为答案,我很乐意将其标记为正确。 –