【发布时间】:2012-07-17 00:15:42
【问题描述】:
在尝试使用 jQuery 获取视图上的局部 int 变量的值时,我遇到了一个小问题。所以,我有一个主视图,正如您在下面的代码中看到的那样,当我尝试通过处理部分视图中按钮的单击事件来获取 indexPage 的值时,我使用了一个名为“_Result”的部分视图,如果我用另一个值(例如 5)初始化我的变量,我得到 0,事件。知道为什么吗?
提前致谢
我的看法:
@model System.Data.DataTable
@{var pageIndex = 5;}
<div>
<div>
<span>Téléphone ?</span>
<input id="idTxTel" type="text" name="txTelephone"/>
<input id="idBnSearch" type="submit" value="Chercher" name="bnSearch"/>
</div>
@Html.Partial("_Result", Model)
</div>
<script type="text/javascript">
$(document).ready(function () {
$("#idBnSearch").click(function () {
//The right value (5)
alert('@pageIndex');
var telValue = $("#idTxTel").val();
var methodUrl = '@Url.Content("~/Search/GetReverseResult/")';
'@{pageIndex = 0;}'
doReverseSearch(telValue, '@pageIndex', methodUrl);
});
$("#bnNextPage").live("click", function ()
{
//Not th right value (0)
alert('@pageIndex');
});
});
</script>
我的 doReverseSearch 方法:
function doReverseSearch(telValue, pageIdx, methodUrl)
{
$.ajax(
{
url: methodUrl,
type: 'post',
data: JSON.stringify({ Telephone: telValue, pageIndex: pageIdx }),
datatype: 'json',
contentType: 'application/json; charset=utf-8',
success: function (data) {
$('#result').replaceWith(data);
},
error: function (request, status, err) {
alert(status);
alert(err);
}
});
}
我的部分观点:
<div id="result">
<h2>Résultat de la recherche</h2>
<div>@ViewBag.CountResult entreprises trouvées</div>
@if(Model != null)
{
foreach (DataRow row in Model.Rows)
{
<h3>@row["CompanyName"]</h3>
}
}
<hr />
<div>
<span>Page N sur M</span>
<input id="bnPreviousPage" type="submit" value="Précédant" name="bnPrevious"/>
<input id="bnNextPage" type="submit" value="Suivant" name="bnNext"/>
</div>
</div>
【问题讨论】:
-
你的javascript是什么样子的?
-
查看源代码时,每个
alert('@pageIndex');看到了什么?我看不出这会出错,因为您正在为视图(而不是部分视图)生成一个值。如果点击事件没有为使用live完成的事件触发,那将是另一回事...... -
我不明白,但由于它没有给出正确的值,这意味着某个地方有问题! #idBnSearch 中的警报给我 5,#bnNextPage 中的警报给我 0
-
@Jason : 我的js代码贴出来了
-
你的代码在渲染后是什么样子的?在浏览器中,查看源代码以查看 razor 实际为您做了什么。
标签: c# jquery asp.net-mvc-3 razor