我有一个在MVC区域内创建的视图。 从这个视图我想添加一个Html表单,它可以在一个控制器上进行操作,该控制器不在任何区域,只在我的主控制器文件夹中。
@using (Html.BeginForm("MyAction", "MyController", FormMethod.Get))
{
<input type="submit" value="TEST" />
}
当我执行此代码时,它会尝试在同一区域中找到我的控制器并在生成html后失败
<form action="/MyApp/en/MyController/MyMethod" method="get">
这实际上适用于其他电话:
http://localhost:18183/MyApp/nl/OtherController/OtherAction
我可以在浏览器中访问没有区域的控制器上的操作,如下所示:
http://localhost:18183/MyController/MyMethod
但是当我以经典的方式添加表单时,它仍然无法正常工作:
<form action="/MyController/MyMethod" method="get">
如何调用此控制器?
答案 0 :(得分:9)
您需要为routeValues属性指定一个匿名对象:
@using (Html.BeginForm("MyAction", "MyController", new { area = "" }, FormMethod.Get))
{
}
如果您想要转到其他区域而不是区域,请将空引号修改为您的新区域
此重载的文档位于http://msdn.microsoft.com/en-us/library/dd492933(v=vs.118).aspx