Webmatrix: передача переменной в запрос SQL

Я создал сайт в Webmatrix (cshtml), который использует цикл для отображения данных из таблицы SQL CE. У меня есть кнопка, которая при нажатии запускает запрос, чтобы обновить статус "чтения" этой записи. У меня проблемы с передачей идентификатора записи в запрос. Это работает, если я устанавливаю статический идентификатор, но когда я делаю идентификатор динамическим, похоже, что он работает (и оповещение показывает, что идентификатор передается переменной), но запись не обновляется.

Мой SQL это:

    db.Execute("UPDATE MyTable SET Status='F' WHERE MyTable.MyID=@0", myVar);

И мой HTML (@details. Это набор записей, созданный для цикла):

    <form method="post">
    <button type="submit" class="btn btn-xs btn-link pull-right" name="optFlag" onclick="javascript:setStatus(@details.MyID)" ><span class="fa fa-flag"></span></button>
    </form>

Код JS, который я использую для передачи идентификатора как onclick:

    <script>
     function setStatus(myVar) {
     }
    </script>

Пожалуйста, может кто-нибудь сказать мне, если я на правильном пути, и если да, что я делаю не так. Если я полностью не в курсе, каков наилучший способ добиться этого?

Большое спасибо (PS - пожалуйста, дайте мне знать по комментарию / сообщению, если это сообщение не соответствует надлежащим стандартам, чтобы я мог внести изменения без отрицательного результата).

1 ответ

Вы должны переосмыслить свой подход. Когда страница загружена, язык сценариев (бритва C#) будет выполняться ПЕРВЫМ до того, как это сделает javascript. Таким образом, невозможно заставить javascript выполнить вызов БД таким способом.

Вместо этого вы могли бы с помощью javascript загрузить новую страницу, отправить переменную на эту новую страницу в строке запроса или через форму, а затем использовать это значение для выполнения вызова db через ваш код C# бритвы.

Другие вопросы по тегам