在使用一些jQuery ajax时,我遇到了Chrome和Firefox没有通过的问题 使用jquery load()
查询字符串值这是标记:
<a href="#" class="abort-invitation" id='abort-invitation-103'>abort</a>
jquery脚本:
$('a.abort-invitation').live(
{
click: function (e) {
var $link = $(this);
var querystringValue = $link.html();
var randomnumber = new Date().getTime();
var urlPath = '<%:Url.Action("AbortInvitation", "Evaluation") %>' + '?
inviteState=' + querystringValue + '&ran=' + randomnumber;
var $modal = GetModal();
$modal.load(urlPath);
// more javascript ...
在load()上调用MVC方法:
public PartialViewResult AbortInvitation()
{
ViewData["inviteState"] = Request.QueryString["inviteState"];
var randomValue = Request.QueryString["ran"];
return PartialView("~/views/evaluation/controls/AbortOrReactivate.ascx");
}
在Visual Studio中调试ViewData [“inviteState”]会在加载时给我一个值 从IE(8)开始,在Chrome(16.0)和FireFox(8)中,我将获得传入的值“”。有没有人知道一个浏览器为什么按预期工作的线索或解决方案,另外两个在传递查询字符串值时失败了?
(注意:大多数变量只是我尝试隔离问题并一次分解一个。随机数附加以防有一些缓存。我们只关心变量'querystringValue'本身。)
答案 0 :(得分:0)
尝试正确编码您的请求参数的网址:
var urlPath = '<%: Url.Action("AbortInvitation", "Evaluation") %>';
var $modal = GetModal();
$modal.load(urlPath, {
inviteState: querystringValue,
ran: randomnumber
});
jQuery还有一个用于禁用缓存的内置机制,因此这个ran
变量似乎没有必要:
var urlPath = '<%: Url.Action("AbortInvitation", "Evaluation") %>';
$.ajax({
url: urlPath,
type: 'GET',
cache: false,
data: { inviteState: querystringValue },
success: function(result) {
var $modal = GetModal();
$modal.html(result);
}
});