如何在MVC3中从视图导航到控制器时获取控制器中的视图名称

时间:2014-08-21 15:47:52

标签: asp.net-mvc asp.net-mvc-3

我的项目中有以下视图,

PolicyScreen.cshtml

上述观点低于控制,

@Html.ActionLink("OK", "AccountScreen", "AccountUC", new { id= ViewBag.id})

帐户控制器如下所示,

[ActionName("AccountScreen")]
public ActionResult GetPolicyController(int id)
{
if (viewName='PolicyScreen')
{
//do validation
}
}

如果单击“确定”,我可以正确点击AccountUC控制器和AccountScreen操作名称。 现在我需要知道从哪个视图导航到AccountUC控制器?

答案是PolicyScreen ,但我不知道如何在动作方法中获取此视图名称,有什么帮助吗?

2 个答案:

答案 0 :(得分:1)

我想知道你为什么需要这个,但你可以通过将视图名称放在动作链接参数中来实现:

new { id = ViewBag.id, fromView = "PolicyScreen" }

当然,你需要改变你的行动方式的签名:

public ActionResult AccountScreen(int id, string fromView)

如果您想自动获取视图名称而不是硬编码,请参阅Retrieve the current view name in ASP.NET MVC?

如果您想要操作名称而不是视图名称,请参阅Get current action and controller and use it as a variable in an Html.ActionLink?

答案 1 :(得分:1)

试试这个

@Html.ActionLink("OK", "AccountScreen", "AccountUC", 
            new { id= ViewBag.id , viewName="replaceCurrentViewNameHere"},null)

确保您的操作方法有一个参数来接受我们发送的视图名称

[ActionName("AccountScreen")]
public ActionResult GetPolicyController(int id,string viewName)
{
   if (viewName=='PolicyScreen')
   {
     //do validation
   }
}