【发布时间】:2023-04-03 21:28:01
【问题描述】:
我在尝试获取 ViewBage 属性值并将其传递给 jQuery 方法时遇到问题。 例如,在我下面的代码中,@ViewBag.CountResult 的值为 1,它显示在我的浏览器中,但是当传递给 updateResultFooter 方法时,它就像 "" !不明白为什么。下来是我的看法。有什么帮助吗?
提前致谢
<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">
var methodUrl = '@Url.Content("~/Search/GetReverseResult/")';
$(document).ready(function (){
updateResultFooter("@ViewBag.CountResult", "@ViewBag.PageNumber", "@ViewBag.PageCount");
$("#idBnSearch").click(function (){
var telValue = $("#idTxTel").val();
pageIndex = 0;
doReverseSearch(telValue, pageIndex, methodUrl);
updateResultFooter("@ViewBag.CountResult", 0, "@ViewBag.PageCount");
});
$("#bnNextPage").live("click", function (){
var telValue = $("#idTxTel").val();
pageIndex = pageIndex + 1;
doReverseSearch(telValue, pageIndex, methodUrl);
updateResultFooter("@ViewBag.CountResult", pageIndex, "@ViewBag.PageCount");
});
});
function updateResultFooter(resultCount, pageIndex, pageCount){
if (resultCount == '0')
$("#resultFooter").hide();
else
{
$("#resultFooter").show();
if (pageIndex == 0)
$("bnPreviousPage").attr('disabled', 'disabled');
else
$("bnPreviousPage").removeAttr('disabled');
if ((pageIndex + 1) == pageCount)
$("bnNextPage").attr('disabled', 'disabled');
else
$("bnNextPage").removeAttr('disabled');
}
}
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);
}
});
}
</script>
PS:我正在使用此代码来修改网页的显示,具体取决于用户搜索的结果。
【问题讨论】:
-
@ViewBag.CountResult 有问题吗?您是否使用此代码获取 @ViewBag.PageCount 的值?
-
在浏览器中查看源码时,
updateResultFooter的第一个参数是“1”还是“”? -
第一个参数是一个空字符串“”,这是我想通过jQuery从ViewBag中获取的所有变量
-
我试图改变我的模型,所以它可以有我想要的值,比如 CountResult。所以,我不再使用 ViewBag 了。但这并没有解决我的问题。首先,我在第一次加载页面时遇到 NullReferenceException (updateResultFooter("@Model.CountResult", ...),我尝试使用 (var jsModel = '@Html.Raw(Json .Encode(Model))';) 但是 jsModel 总是 'null' !为什么会这样?
标签: c# jquery .net asp.net-mvc-3