单个视图上的GET和POST方法

时间:2019-06-28 08:12:57

标签: asp.net asp.net-mvc

我想知道是否可以在同一视图/窗体上使用GET和POST方法,或者应该在两个视图上将它们分开?另外,我可以在一个视图上有两个模型(IEnumerableGeneric,...)吗?

控制器

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}

这可能吗?

1 个答案:

答案 0 :(得分:0)

是的,您可以在一个视图上使用多种表单。

单独的模型,您也可以这样做。

假设您有Model1和Model2,并且想将它们分别用于不同的表单。

您创建第三个包装模型Model3,其中Model1和2例如成为简单属性,然后将每个包装用于其自己的表单/局部视图。

您的模型如下所示:

public class WrapperModel {
    public Form1Model model1 { get; set; }
    public Form2Model model2 { get; set; }
}

然后您的表单1使用WrapperModel.model1,另一个使用第二个模型。当您遇到这种情况时,这是很常见的。

例如,您可以为表单使用一些局部视图,并在每个表单中指定不同的模型。这样至少可以使它们之间有一些分隔。