我从_Layout.cshtml视图多次调用同一个控制器。所以在这个控制器中,如何在运行时发现它是否仍然是正在渲染的页面,或者是否正在制作全新的页面请求?
在asp.net中,您可以使用ispostback来解决这个问题。如何判断MVC3中的页面是否有新的请求?
由于
答案 0 :(得分:18)
对MVC没有这样的想法。你有可以处理POST,GET或两者的动作。您可以使用[HttpPost]
和[HttpGet]
属性过滤每个操作可以处理的内容。
在MVC上,你可以在IsPostBack
中找到最接近public ActionResult Index()
{
if (Request.HttpMethod == "POST")
{
// Do something
}
return View();
}
的内容:
[HttpPost]
public ActionResult Create(CreateModel model)
{
if (Request.HttpMethod == "POST") // <-- always true
{
// Do something
}
return RedirectToAction("Index");
}
因此,
{{1}}
答案 1 :(得分:3)
我可能还建议您在控制器基类中将其实现为属性,如:
protected bool IsPostback
{
get { return Request.HttpMethod == "POST"; }
}
-Marc
答案 2 :(得分:0)
实际上是这样的:
if (Request.Method == "POST")
{
}