У меня проблема с отправкой формы в asp.net mvc 5. Когда я использую бритву Html.BeginForm (), она создает форму с пустым действием и не работает. Когда я использую HTML-код, он открывает новую страницу "site.com/Home/NewDeck" с ошибкой 404
Оба следующих кода не работают.
Это код представления (с Html.BeginForm ()):
@using (Html.BeginForm("NewDeck", "Home", FormMethod.Post, new { @class="popup-form"}))
{
<div class="popup-header-row">
<div style="display:flex; margin: 0; width: 24px"></div> @*pseudo element*@
<div class="popup-header">New deck</div>
<img id="btn-close-new-deck" src="~/Content/images/close.svg" class="close-button" />
</div>
@Html.TextBoxFor(Model => Model.NewDeck.Name, new { @placeholder = "Name of the deck", @class = "input-text-form" })
<input type="submit" value="Add deck" class="btn-one-center" />
}
Это код вида (с формой):
<form method="post" action="/Home/NewDeck" class="popup-form">
<div class="popup-header-row">
<div style="display:flex; margin: 0; width: 24px"></div> @*pseudo element*@
<div class="popup-header">New deck</div>
<img id="btn-close-new-deck" src="~/Content/images/close.svg" class="close-button" />
</div>
@Html.TextBoxFor(Model => Model.NewDeck.Name, new { @placeholder = "Name of the deck", @class = "input-text-form" })
<input type="submit" value="Add deck" class="btn-one-center" />
</form>
Это код HomeController:
[Route("")]
[HttpGet]
public ActionResult Index()
{
Model = new HomeViewModel { DeckList = Database.GetDecksList("mail@gmail.com") };
Model.NewDeck = new Deck { Random = false };
return View(Model);
}
[HttpPost]
public ActionResult NewDeck(HomeViewModel model)
{
Database.AddDeck(model.NewDeck.Name, "mail@gmail.com", model.NewDeck.Random);
return View(model);
}