尝试使用jQuery在视图上获取局部int变量的值时,我遇到了一些问题。所以,我有一个主视图,正如你在下面的代码中看到的,当我尝试通过处理局部视图中按钮的click事件来获取indexPage的值时,我使用名为“_Result”的局部视图,我得到0,如果我用另一个值(例如5)初始化我的变量的事件。知道为什么吗?
提前致谢
我的观点:
@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>
答案 0 :(得分:0)
javascript中的Razor必须包含在一个块中
所以你可以这样做:
<script>
// global value for page
<text>
var myPage = @pageIndex;
<text>
</script>
更容易的是给按钮一个data-page属性并在click事件中询问属性:
<button data-page="@("pageIndex")" id="myButt" />
$("#myButt").on("click",function(e){
var pageIndex = $(this).attr("data-page");
alert(pageIndex);
});