使用jQuery获取局部变量值

时间:2012-07-17 00:15:43

标签: c# jquery asp.net-mvc-3 razor

尝试使用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>

1 个答案:

答案 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);
});