asp.net core razor pages - form with parameters
От: CyberRussia  
Дата: 29.06.22 22:06
Оценка:
Добрый день,
Есть сайт на asp.net core Razor Pages.
На одной из новых страниц есть форма. Пожелание заказчика — сохранение данных для каждого поля отдельно, то есть по onchange данные с соответствующим полем отправляем на сервер, вызываем соответствующую полю процедуру для сохранения...
Поскольку изменение содержимого некоторых полей могут повлиять на другие элементы страницы (например на доступность кнопок), то мне видится использовать не ajax, а традиционную форму с onpost. Соответственно часть страницы выглядит примерно так:
<form method="post" asp-page-handler="nummer" name="Form_DataOrder_NZ">@Html.TextBoxFor(m => m.DataOrder.NZ, new {@class = "form-control"})</form>

Есть javascript подписанный на onchange текстбокса и вызывающий submit у формы.
На первый взгляд работает, но в урле страницы есть параметр определяющий загрузку данных (например, так: orderedit?order=12345. И вот после такой отправки данных по форме он, естественно, исчезает и данные на страницу не загружаются.
Вопрос. Как в форме указать, что нужно в урл сохранить актуальных параметр?

Просто вставить action — нельзя, возникает ошибка исполнения — конфликт между asp-page и action.

Убрать asp-page-handler и добавить action — вообще перестает работать. Похоже, что страница не проходит проверки на VerificationToken, а отключать проверку не хочется совершенно.
Re: asp.net core razor pages - form with parameters
От: vaa https://www.youtube.com/playlist?list=PLtrvASfI1KW7VOYRKjglcagQzWLoxlncl
Дата: 30.06.22 06:24
Оценка:
Здравствуйте, CyberRussia, Вы писали:


CR>Есть javascript подписанный на onchange текстбокса и вызывающий submit у формы.


Так отправляйте форму через fetch, не надо сабмит. тогда перегрузки не будет.
VerificationToken можно легко из js юзать, это же обычный инпут.


ЗЫ стоит взглянуть на blazor server. там можно использовать на разор пэйдж
компоненты блазор, которые не требуют для вашего кейса жс и не будут перегружать страницу.
потому как клиент-сервер общаются по сигналр.
https://www.meziantou.net/integrating-blazor-components-into-razor-pages-and-mvc-apps.htm
Re[2]: asp.net core razor pages - form with parameters
От: CyberRussia  
Дата: 30.06.22 08:02
Оценка:
Здравствуйте, vaa, Вы писали:

vaa>Здравствуйте, CyberRussia, Вы писали:



CR>>Есть javascript подписанный на onchange текстбокса и вызывающий submit у формы.


vaa>Так отправляйте форму через fetch, не надо сабмит. тогда перегрузки не будет.


Так перезагрузка как раз полезна, можно легко выставить доступность разных элементов управления на основе введенных данных. И не надо будет все это дублировать в js
Re[3]: asp.net core razor pages - form with parameters
От: vaa https://www.youtube.com/playlist?list=PLtrvASfI1KW7VOYRKjglcagQzWLoxlncl
Дата: 30.06.22 12:23
Оценка:
Здравствуйте, CyberRussia, Вы писали:

CR>Здравствуйте, vaa, Вы писали:


vaa>>Здравствуйте, CyberRussia, Вы писали:



CR>>>Есть javascript подписанный на onchange текстбокса и вызывающий submit у формы.


vaa>>Так отправляйте форму через fetch, не надо сабмит. тогда перегрузки не будет.


CR>Так перезагрузка как раз полезна, можно легко выставить доступность разных элементов управления на основе введенных данных. И не надо будет все это дублировать в js

при перезагрузке теряется состояние как вы сами же и описали.
все равно в вашем случае чтобы не терять состояние нужно на клиенте собирать на каждом элементе урл для сабмита,в котором хранится состояние.
опять же сабмит всей страницы этой больший траффик по сравнению с точечным fetch.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.