我在试图阐明这个看似简单的问题时遇到了一个真正的问题。
我有一个视图,其中包含一个在视图顶部有一些搜索字段的FORM,并且在提交表单后,该搜索的结果会显示在同一视图中。
我有一个HTTPGET控制器方法,它将表单字段作为参数,如果它是由用户提交的,它会将模型传递回视图,并显示结果并使用它们预先填充搜索表单填写完毕。
如何判断页面是否加载了默认参数与实际提交表单的人。
实现这一目标的最佳方法是什么?
答案 0 :(得分:0)
如果我正确理解你的问题,那么我认为你需要考虑HttpGet属性:
https://msdn.microsoft.com/en-us/library/system.web.mvc.httpgetattribute(v=vs.118).aspx
和HttpPost属性:
https://msdn.microsoft.com/en-us/library/system.web.mvc.httppostattribute(v=vs.118).aspx
假设你有一个创建方法。 Http方法如下所示:
[HttpGet]
public ActionResult Create()
{
}
并且post方法如下所示:
[HttpPost]
public ActionResult Create(Person p)
{
//Logic to insert p into database. Could call an application service/repository to do this
}
答案 1 :(得分:0)
RedirectToAction
解决问题。
您可以在提交数据后返回get方法,并使用默认值
填充视图[HttpGet]
public ActionResult Create()
{
// fill model to default data
return view(model);
}
[HttpPost]
public ActionResult Create(Person p)
{
//do your stuff save data
return RedirectToAction("Create");
}
or
[HttpPost]
public ActionResult Create(Person p)
{
if(...)
{
//do your stuff any logic
return RedirectToAction("Create");
}
//do your stuff
return view(...);
}