Как управлять методами обработчиков из партиалов в Razor Pages? - PullRequest
0 голосов
/ 16 марта 2020

У меня есть _ContactFrom.cshtml частичное:

<form method="post" role="form" id="contact-form" class="contact-form">
...
</form>

Index.cshtml:

@* More cshtml code... *@
<partial name="_ContactForm"/>

Projects.cshtml:

@* More cshtml code... *@
<partial name="_ContactForm"/>

Когда я пытаюсь добавив OnPost метод для обработки отправляемой формы, я получаю сообщение об ошибке в зависимости от того, где я отправляю форму:

NullReferenceException: ссылка на объект не установлена ​​для экземпляра объекта.

Кажется, что существует конфликт в способе использования моделей. Как и где именно я должен создать метод обработчика для частичного? Я также попытался создать отдельную модель _ContactForm.cshtml.cs для формы контакта, но это не сработало. Любые предложения будут оценены.

1 Ответ

0 голосов
/ 17 марта 2020

В настоящий момент вы не указали значение для атрибута action в форме, поэтому оно будет опубликовано на той странице, на которой оно появляется. У вас должна быть одна страница / конечная точка на вашем сайте, которая несет за это ответственность. для обработки отправленной формы и найдите там свой обработчик OnPost. Наиболее очевидная страница для этого, приведенная в вашем примере, - Contact.cs html.

<form method="post" role="form" id="contact-form" class="contact-form" action="/contact">
...
</form>
...