У меня есть то, на что я надеюсь, простой вопрос. Я пытаюсь использовать несколько форм в представлении MVC (например, Multiple Forms in same page ASP.net MVC) - каждый вызов различных действий на одном контроллере. Моя проблема в том, что любая форма, в которой я вызываю действие, которое отличается от представления, я получаю сообщение об ошибке. Простой пример ниже:Несколько форм на представлении MVC
Index.cshtml
@using (Html.BeginForm("index", null, FormMethod.Post, new { @class = "form -horizontal" }))
{
<button class="btn btn-primary" type="submit">index</button>
}
<br />
@using (Html.BeginForm("foobar", null, FormMethod.Post, new { @class = "form -horizontal" }))
{
<button class="btn btn-primary" type="submit">foobar</button>
}
testController
public class testController : Controller
{
// GET: test
public ActionResult Index()
{
return View();
}
[HttpPost, ActionName("Index")]
public ActionResult IndexPost()
{
return View();
}
[HttpPost]
public ActionResult foobar()
{
return View();
}
Щелчок "индекс" кнопка работает (ничего не делает) При нажатии на кнопку "Foobar" выдает ошибку
The view 'foobar' or its master was not found or no view engine supports the searched locations.
Мне явно не хватает чего-то - всякая мудрость оценивается
'вернуться View ("Index");' в обоих методах POST –
При использовании 'вид возврата();' контроллер автоматически ищет точки зрения с тем же name как действие, поэтому он ищет в папке views для 'foobar.cshtml', которая, вероятно, не существует. Как уже упоминалось, если вы добавите параметр имени вида, действие 'foobar' вернет представление индекса. – Jake
Спасибо! return View («Index») работает в этом примере. Это, очевидно, простой тест, позвольте мне попробовать это с моей реальной базой на основе модели и посмотреть, как она работает. –