Asp.net mvc 在控制器操作中为POST和GET使用两种不同的模型
我在MVC项目中的一个控制器中使用了“Add”方法。在正常的“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") { /
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,如果这就是你的目标。