Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 在控制器操作中为POST和GET使用两种不同的模型_Asp.net Mvc - Fatal编程技术网

Asp.net mvc 在控制器操作中为POST和GET使用两种不同的模型

Asp.net mvc 在控制器操作中为POST和GET使用两种不同的模型,asp.net-mvc,Asp.net Mvc,我在MVC项目中的一个控制器中使用了“Add”方法。在正常的“GET”中,我希望返回类型为CaseEditModel的强类型对象,在POST-verb中,我希望视图将类型为Case的对象返回给控制器。可能吗 请求对象具有requesttype属性,可以执行以下操作: if (Request.RequestType == "GET") { // do CaseEditModel here } else if (Request.RequestType == "POST") { /

我在MVC项目中的一个控制器中使用了“Add”方法。在正常的“GET”中,我希望返回类型为
CaseEditModel
的强类型对象,在POST-verb中,我希望视图将类型为
Case
的对象返回给控制器。可能吗

请求对象具有requesttype属性,可以执行以下操作:

if (Request.RequestType == "GET")
{
     // do CaseEditModel here
}
else if (Request.RequestType == "POST")
{
     // do Case here
}

Request对象具有requesttype属性来执行以下操作:

if (Request.RequestType == "GET")
{
     // do CaseEditModel here
}
else if (Request.RequestType == "POST")
{
     // do Case here
}

是的,在get上,添加操作可以将CaseEditModel返回到视图,在post上,添加操作的参数可以是Case类型。在文章中,模型绑定器将尝试绑定到您为一个论点输入的任何内容

[HttpGet]
public ActionResult Add()
{
    var caseEdit = new CaseEditModel();
    return View(caseEditModel);
}

[HttpPost]
public ActionResult Add(Case caseIn)
{

}

是的,在get上,添加操作可以将CaseEditModel返回到视图,在post上,添加操作的参数可以是Case类型。在文章中,模型绑定器将尝试绑定到您为一个论点输入的任何内容

[HttpGet]
public ActionResult Add()
{
    var caseEdit = new CaseEditModel();
    return View(caseEditModel);
}

[HttpPost]
public ActionResult Add(Case caseIn)
{

}

这里需要注意的是,您需要使用不同的视图,因为每个视图都将被强类型化为
Case
CaseEditModel
,除非您使它们都从一个公共父视图继承,但是你会失去任何特殊属性。模型绑定器不会尝试绑定到酪蛋白,不管它是什么类型的吗?我指的是aspx文件。如果从
ViewPage
继承,则需要指定
T
的类型。对于Get,您将需要
CaseEditModel
对于您将要
Case
的帖子。假设帖子
Add
返回一个是且不重定向的视图(它应该重定向)。简化并返回Get上的CaseInput和帖子上的CaseInput,然后将CaseInput映射到域对象Case,如果这正是您的目标。这里的警告是,您需要使用不同的视图,因为每个视图将被强类型化为
Case
CaseEditModel
,除非您使它们都从一个公共父级继承,但是你会失去任何特殊属性。模型绑定器不会尝试绑定到酪蛋白,不管它是什么类型的吗?我指的是aspx文件。如果从
ViewPage
继承,则需要指定
T
的类型。对于Get,您将需要
CaseEditModel
对于您将要
Case
的帖子。假设帖子
Add
返回一个是且不重定向的视图(它应该重定向)。简化并返回Get上的CaseInput和帖子上的CaseInput,然后将CaseInput映射到域对象Case,如果这就是你的目标。