Не удается уменьшить локальную переменную в бритве ASP.NET Core MVC - PullRequest
0 голосов
/ 03 июля 2018

Это мой файл .cshtml, и я объявляю и присваиваю значение переменной x. Когда я нажимаю кнопку с идентификатором 'b', я хочу, чтобы эта переменная использовалась, а затем уменьшалась на единицу, но когда я отлаживаю этот проект, я вижу, что переменная x не уменьшается. Какая у меня ошибка?

@model IEnumerable<WebApplicationMVC.Models.Test>

@{
    ViewData["Title"] = "Testing";
    int x = Model.Count() - 1;
}

<script>

<div id="partial">
    @await Html.PartialAsync("Question", Model.ToList()[0])
</div>

<input type="button" id="b" value="next" class="btn btn-default" />

$("#b").click(function () {

    if (@x == 0) {
        window.alert("Finished")
        window.location.href = '@Url.Action("Index", "Subject")'
    }

    window.alert("Value of x is -> " + @x);

    $.ajax({
        url: '@Url.Action("Question", "Test")',
        type: 'GET',
        data: { id: '@Model.ToList()[x].ID' },
        success: function (result) {
            $("#partial").html(result);
        }
    });

    @{ 
        x--;         //this doesn't work...
    }

});

1 Ответ

0 голосов
/ 03 июля 2018

Эта переменная x находится в C # и работает на сервере. Он никогда не доходит до браузера.

Вы хотите, чтобы переменная уменьшалась при щелчке чего-либо в браузере.
Вместо этого используйте переменную Javascript:

<script>
    var x = @(Model.Count() - 1);  // javascript variable, initialised to a value from Razor

    if (x == 0)
    {
       // finished
    }

    window.alert("Value of x is -> " + x);

    x--;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...