Переменная Javascript int из данных модели ASP.NET MVC? - PullRequest
3 голосов
/ 12 января 2011

Мне нужно получить данные модели в переменную javascript и использовать ее как int для сравнения значений. Но я могу только выяснить, как получить данные модели в виде строк, в противном случае компилятор жалуется.

Так, как я могу получить max и taskBudgetHours как переменные типа int в Javascript?

<script type="text/javascript">
    $(document).ready(function () {
        $("#taskForm").submit(function (e) {
            var taskBudgetHours = $('#BudgetHours').val();
            var max = '<%: Model.Project.RemainingBudgetHours %>';

            alert(taskBudgetHours);
            alert(max);

            if (taskBudgetHours <= max) { //This doesn't work, seems to treat it as strings...
                return true;
            }
            else {
                //Prevent the submit event and remain on the screen
                alert('There are only ' + max + ' hours left of the project hours.');
                return false;
            }
        });
    });
</script>

Ответы [ 2 ]

4 голосов
/ 12 января 2011

Для max, не заключайте в кавычки:

var max = <%: Model.Project.RemainingBudgetHours %>;

Для taskBudgetHours используйте встроенную функцию JavaScript parseInt:

var taskBudgetHours = parseInt($('#BudgetHours').val(), 10);

Обратите внимание на использование параметра radix для parseInt; это предотвращает, например, "020" как анализируемый как восьмеричный:

parseInt("020") === 16 // true!
0 голосов
/ 12 января 2011

Я бы попытался назначить Model.Project.RemainingBudgetHours скрытому полю при загрузке страницы, а затем получить его значение, как вы это делаете с taskBudgetHours.Также не совсем уверен, но вы можете попробовать:

var max = parseInt('<%: Model.Project.RemainingBudgetHours %>') 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...