@savva09
Начинающий .NET-ер

Как взаимодействовать из Razor-pages с файлом cs этих страниц?

Есть вот такая страница:
@page
@model WebApplication1.Pages.CreateModel
@{
    string name;
    string comment;
    if (Request.Method == "POST") {
        name = Request.Form["name"];
        comment = Request.Form["comment"];

        //Здесь нужно добавить взаимодействие, чтобы отправить все данные в бд(нужно как-то добавить вызов метода)

        <text>
          You entered: <br/>
          @name <br/>
          @comment <br/>
        </text>
    }
}
  • Вопрос задан
  • 87 просмотров
Пригласить эксперта
Ответы на вопрос 1
Lapita12
@Lapita12
Тесты, тесты?
CreateModel.cs:
public class CreateModel : PageModel
{
    // Добавьте ваш контекст базы данных здесь
    // Например: private readonly AppDbContext _context;

    public CreateModel(/*AppDbContext context*/)
    {
        // _context = context;
    }

    public async Task<IActionResult> OnPostAsync(string name, string comment)
    {
        // Сохраните данные в базе данных здесь
        // Например: _context.Comments.Add(new Comment { Name = name, CommentText = comment });
        // await _context.SaveChangesAsync();

        return RedirectToPage();
    }
}


Create.cshtml:
@page
@model WebApplication1.Pages.CreateModel
@{
    ViewData["Title"] = "Create";
}
<h2>Create</h2>

<form method="post">
    <label for="name">Name:</label>
    <input id="name" name="name" type="text" required />
    <br />

    <label for="comment">Comment:</label>
    <input id="comment" name="comment" type="text" required />
    <br />

    <input type="submit" value="Submit" />
</form>

В этом примере, я удалил обработку POST-запроса из Razor-страницы и переместил ее в метод OnPostAsync в CreateModel. Метод OnPostAsync будет автоматически вызываться и сохранять данные в базу данных.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы