我想知道如何检查一个Action,我从哪个View发出POST。 因此,在操作完成后,我可以返回到同一个视图。
像:
if (enteredfromView1)
{
return RedirectToAction("View1","Controller");
}
else
return RedirectToAction ("View2","Controller");
答案 0 :(得分:2)
您可以使用Request.UrlReferrer来实现此目的。
public ActionResult TryMeOut()
{
TempData["ReturnPath"] = Request.UrlReferrer.ToString();
//return your users to the correct view.
}
如果这不是你想要的,那么你应该看一下这篇文章。也许这有助于你:Obtain View name in Controller, ASP.NET MVC
答案 1 :(得分:0)
如果您的操作是动态的(多个视图可以重定向到同一操作),则可以使用请求的UrlReferrer属性。可以在MSDN site上找到更多信息。您必须改为实现Redirect("URL")
,或者解析URL以推断控制器和视图。
答案 2 :(得分:0)
在表单中添加一个隐藏的输入,指示视图的名称。
<input type="hidden" id="ViewName" name="ViewName" value="View1" />
然后在您的操作中,只需使用Request.Form["ViewName"]
来检索它。
string viewName = Request.Form["ViewName"];
switch (viewName)
{
case "View1":
return RedirectToAction("View1","Controller");
case "View2":
return RedirectToAction("View2","Controller");
// ...
default:
return RedirectToAction("SomeDefault", "Controller");
}