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つのパラメーターすべてで未定義のままです
<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>