Javascript неисправность - PullRequest
       9

Javascript неисправность

0 голосов
/ 01 апреля 2012

Может кто-нибудь объяснить мне, почему этот скрипт не работает?

<script type="text/javascript">
function destroy(ID) {
    if (confirm("Deleting is a very bad thing! Sure?")) 
    {
        location.href='@Url.Action("SomeAction", new { id = ID })'
        }
}

Ошибка: Имя «ID» не существует в текущем контексте и встречается здесь new { id = ID } Если я просто заменю ID таким образом: new { id = 3 }, он работает нормально.В чем проблема?

1 Ответ

4 голосов
/ 01 апреля 2012

Вы смешиваете код своего сервера с кодом клиента.

ID - это переменная javascript - существует только на клиенте.
@Url.Action("SomeAction", код сервера, Существуют только на сервере.

Вы не можете смешивать их!

Вы можете сделать что-то вроде этого:

function destroy(ID) {
    if (confirm("Deleting is a very bad thing! Sure?")){
        var url ='@Url.Action("SomeAction")';
        url += '/?id =' + ID;
        location.href = url;
    }
}

Вы должны запомнить все@ вещи в представлениях компилируются и выполняются на сервере и больше не существуют на клиенте.хитрый razor ...

Кстати, я бы изменил подтверждающее сообщение ...

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