Могу ли я добавить обработчик событий на стороне сервера к ссылке в Razorpages - PullRequest
0 голосов
/ 23 мая 2018

У меня есть несколько ссылок в Razorpages, которые используются для изменения статуса записи в SQL с помощью EF.

<a>Set status 1</a>
<a>Set status 2</a>
<a>Set status 3</a>

Я не хочу создавать одно действие для каждого статуса в моей модели,и не хочу добавлять какие-либо маршруты.При нажатии на ссылку статуса он должен запустить мой код C # и вернуться на ту же страницу.

Можно ли вызвать действие, встроенное в razorpages, без добавления обработчика страницы?(т.е. добавление обработчика событий на стороне сервера к ссылкам, которые выполняют встроенный код)

1 Ответ

0 голосов
/ 23 мая 2018

Первое: нет, сейчас есть способ сделать это.Но есть обходные пути.

Я предлагаю создать одно действие с параметром, если вы не хотите нескольких действий.

Если вы действительно хотите, чтобы код на стороне клиента изменил вашу БД, вам нужно пройти путь JavaScript и получить доступ к вашей БД через JavaScript.

У вас есть:

<a>Set status 1</a>

Я предлагаю:

<a href="serverUrl/home/SetStatus?param=1">Set status 1</a>

В вашем домашнем контроллере (очевидно, вы можете изменить контроллер)

    public ActionResult SetStatus(int param)
    {
        //do what ever.

        return RedirectToAction("OriginalAction");
    }

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

<a />

, вы собираетесь изменить URL-адрес и вам придется перенаправить обратно на исходную страницу.

...