我想知道如何签入一个动作,我从哪个视图对其进行了 POST。因此,在操作完成后,我可以返回到同一个视图。
像:
if (enteredfromView1)
{
return RedirectToAction("View1","Controller");
}
else
return RedirectToAction ("View2","Controller");
我想知道如何签入一个动作,我从哪个视图对其进行了 POST。因此,在操作完成后,我可以返回到同一个视图。
像:
if (enteredfromView1)
{
return RedirectToAction("View1","Controller");
}
else
return RedirectToAction ("View2","Controller");
您可以使用 Request.UrlReferrer 来实现这一点。
public ActionResult TryMeOut()
{
TempData["ReturnPath"] = Request.UrlReferrer.ToString();
//return your users to the correct view.
}
如果这不是您想要的,那么您应该看看这篇文章。也许这可以帮助你:在控制器中获取视图名称,ASP.NET MVC
如果您的操作是动态的(因为多个视图可以重定向到同一个操作),您可以使用请求的 UrlReferrer 属性。更多信息可以在MSDN 站点上找到。您将不得不实现一个Redirect("URL")
,或者解析 URL 以推断控制器和视图。
在表单中添加一个隐藏的输入来指示视图的名称。
<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");
}