我想知道是否可以在同一视图/窗体上使用GET和POST方法,或者应该在两个视图上将它们分开?另外,我可以在一个视图上有两个模型(IEnumerable
,Generic
,...)吗?
控制器
public class MyController : Controller
{
public ActionResult GetView()
{
return View();
}
[HttpGet]
public ActionResult PostView()
{
return View();
}
[HttpPost]
public ActionResult PostView()
{
return View();
}
}
查看
@model IEnumerable<AppName.Models.OneClass>
@using AppName.Models
@using (Html.BeginForm("GetView", "MyController", FormMethod.Get))
{some code}
@using (Html.BeginForm("PostView", "MyController", FormMethod.Post))
{some code}
这可能吗?
答案 0 :(得分:0)
是的,您可以在一个视图上使用多种表单。
单独的模型,您也可以这样做。
假设您有Model1和Model2,并且想将它们分别用于不同的表单。
您创建第三个包装模型Model3,其中Model1和2例如成为简单属性,然后将每个包装用于其自己的表单/局部视图。
您的模型如下所示:
public class WrapperModel {
public Form1Model model1 { get; set; }
public Form2Model model2 { get; set; }
}
然后您的表单1使用WrapperModel.model1,另一个使用第二个模型。当您遇到这种情况时,这是很常见的。
例如,您可以为表单使用一些局部视图,并在每个表单中指定不同的模型。这样至少可以使它们之间有一些分隔。