Публикация формы только после отправки с использованием контроллера Entity Framework - PullRequest
1 голос
/ 11 марта 2019

У меня есть это представление, которое я создал, чтобы пользователь мог заполнить эту форму, нажать «Отправить», и она отправит сообщение на контроллер, который планирует игру.Затем контроллер вернет результаты запроса.

Но я думаю, что мне чего-то не хватает.Потому что, когда я перехожу на страницу, по этой ссылке:

<li><a asp-area="" asp-controller="Schedule" asp-action="CreateGamingEvent">Create Game Schedule</a></li>

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

Но яне хотите, чтобы он отправлял сообщения до тех пор, пока пользователь не нажмет на кнопку submit.

Есть ли способ заставить форму / контроллер не пытаться отправлять сообщения, пока пользователь не закончит заполнять форму?

Вот представление:

@model GameScheduler.Models.gameSchedulingEvent

@{
    ViewData["Title"] = "CreateGamingEvent";
}

<h2>CreateGamingEvent</h2>

<h4>gameSchedulingEvent</h4>
<hr />
<div>
    <div>
        <form asp-action="CreateGamingEvent">
            <div>
                <label asp-for="GameName"></label>
                <input asp-for="GameName" />
            </div>
            <div>
                <label asp-for="GameStart"></label>
                <input asp-for="GameStart" />
            </div>
            <div>
                <label asp-for="GameEnd"></label>
                <input asp-for="GameEnd" />
            </div>
            <div>
                <input type="submit" value="Create" />
            </div>
        </form>
    </div>
</div>

А вот метод контроллера:

public async Task<IActionResult> CreateGamingEvent(
            [Bind("GameName, GameStart, GameEnd")]
    GameSchedulingEvent gameSchedulingEvent)
{
    result = await client.ScheduleAsync(
                gameSchedulingEvent.Name,
                gameSchedulingEvent.Start,
                gameSchedulingEvent.End);

    return View(result);
}

Любая помощь / предложения будут с благодарностью.

Спасибо!

1 Ответ

1 голос
/ 11 марта 2019

Ссылка действия отправит запрос GET. Вы можете обрабатывать оба глагола двумя отдельными действиями.

ПОЛУЧИТЕ, чтобы сделать начальную форму

[HttpGet]
public IActionResult CreateGamingEvent()
{
    return View();
}

И ПОСТ, чтобы принять форму представления

[HttpPost]
public async Task<IActionResult> CreateGamingEvent(
        [Bind("GameName, GameStart, GameEnd")]
GameSchedulingEvent)
{
    ...
}
...