Как мне реализовать повторно используемый компонент в приложении .net Core Razor Pages, который может обрабатывать отправку формы? - PullRequest
2 голосов
/ 02 октября 2019

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

Я хочу встроить эту форму / функциональность во многие страницы моего приложения, поэтому я смотрю на ViewComponent. Я не хочу реализовывать одну и ту же функциональность OnPost для каждой страницы Razor, к которой я добавляю эту форму.

Если это имеет смысл?

Вот как я показываю форму на странице бритвы.

@await Component.InvokeAsync("QuoteForm", new Models.Quote())

Вот мой простой метод вызова.

//Show a ViewComponent with form
public IViewComponentResult Invoke()
{
   Quote quote = new Quote();

   //Return View with ViewModel from below.
   return View("QuoteFormView", quote);
}

Могу ли я сделать что-то подобное с ViewComponent?

public async Task<IViewComponentResult> OnPostAsync(Quote quote)
{
    //Model did not pass validation.
    if (!ModelState.IsValid)
    {
        //Do Something
    }
    else 
    {
        //Do database work and send email

        //return status to view.
        return Content("Database updated and Email Sent.");
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...