Проблема в том, что всякий раз, когда я жестко кодирую Action и Controller в BeginForm, это приводит к пустому методу действия.
Я в замешательстве.
Вид ниже был вызван из HomeController и метод действия Index.
@using (Html.BeginForm("Index", "Home", FormMethod.Post, new { id = "first" }))
{}
Результат
<form id="first" method="post" action="/Home"></form>
Вызов ниже показан из HomeController и метода действия страницы.
@using (Html.BeginForm("Edit", "Home", FormMethod.Post, new { id = "first" }))
{}
Результат
<form id="first" method="post" action=""></form>
Маршрутизация
routes.MapRoute(
"RootUrlWithAction",
"Home",
new
{
controller = "Home",
action = "Index",
name = "home",
id = UrlParameter.Optional
}
);
routes.MapRoute(
"DynamicPages",
"{name}/{id}",
new
{
controller = "Home",
action = "Page",
id = UrlParameter.Optional
}
);
routes.MapRoute(
"EmptyUrl",
"",
new
{
controller = "Home",
action = "Index",
name = "home"
}
);
routes.MapRoute(
"Default",
"{controller}/{action}/{name}/{id}",
new
{
controller = "Home",
action = "Index",
name = UrlParameter.Optional,
id = UrlParameter.Optional
}
);
Действия контроллера
public class HomeController : Controller
{
public ActionResult Index()
{
return View();
}
public ActionResult Page(String name)
{
return View();
}
[HttpPost]
public ActionResult Edit(Order orderVm)
{
var a = orderVm;
string errorMessage = "hehehe";
return Json(new Order { Message = errorMessage });
}
}