任何人都可以发现3个查询字符串参数中有2个为值,1为未定义的原因。试图获取查询字符串值时未定义
<li class="@ViewBag.ShowNext">@Html.RouteLink("Next »", "Search", new { page = @ViewBag.NextPage, q = @ViewBag.TextClean, Option = @ViewBag.Option }, new { id = "frmPageNext" })</li>
的Javascript/jQuery的
var vars = [], QStrings;
var q = document.URL.split('?')[1];
if (q != undefined) {
q = q.split('&');
for (var i = 0; i < q.length; i++) {
QStrings = q[i].split('='); vars.push(QStrings[1]);
vars[QStrings[0]] = QStrings[1];
}
}
$('#frmPageNext').live('click',function (e) {
e.preventDefault();
$.ajax({
url: '@Url.Action("Results")',
data: { "q": vars['q'], "page": vars['page'], "Option": vars['Option'] },
success: function (data) {
alert(vars['q']);
alert(vars['page']); //Returning undefined
alert(vars['Option']);
$("#dvSearchLeft").html(data).fadeIn(300);
}
});
});
------------------------- URL MVC ------ -----------
<a href="/Search-Results-For/Hotels/Web/2" id="frmPageNext">Next »</a>
The above would be <a href="/Search-Results-For/q=Hotels&Option=Web&Page=2
----------------当前代码-------------- ------
我试着移动javascript试图让代码工作,但不断得到所有3参数undefined ŝ
<script>
$('#frmPageNext').live('click',function (e) {
e.preventDefault();
var vars = [], QStrings;
var q = $('#frmPageNext').attr('href').split('?')[1];
if (q != undefined) {
q = q.split('&');
for (var i = 0; i < q.length; i++) {
QStrings = q[i].split('='); vars.push(QStrings[1]);
vars[QStrings[0]] = QStrings[1];
}
}
$.ajax({
url: '@Url.Action("Results")',
type: 'Get',
data: { "q": vars['q'], "Page": vars['page'], "Option": vars['Option'] },
dataType: 'html',
success: function (data) {
alert(vars['q']);
alert(vars['page']);
alert(vars['Option']);
$("#dvSearchLeft").html(data).fadeIn(300);
}
});
});
</script>
如果您在网址中公布了实际字符,而不是服务器端语言,那么人们可能会更容易看到发生了什么? – adeneo 2013-03-04 22:47:24