获取MVC控制器中先前操作和控制器的名称

eno*_*eno 5 c# asp.net-mvc asp.net-mvc-2

我可以得到当前动作和控制器的名称,如:

string controllername = this.ValueProvider.GetValue("controller").RawValue.ToString();
string actionname = this.ValueProvider.GetValue("action").RawValue.ToString();
Run Code Online (Sandbox Code Playgroud)

此外,我可以通过以下内容获取reffer url:string MyReferrer = Request.UrlReferrer.ToString();

但是如何在mvc2控制器中获取先前操作和控制器的名称?

jwi*_*ize 11

这应该工作!

// Home is default controller
var controller = (Request.UrlReferrer.Segments.Skip(1).Take(1).SingleOrDefault() ?? "Home").Trim('/'); 

// Index is default action 
var action = (Request.UrlReferrer.Segments.Skip(2).Take(1).SingleOrDefault() ?? "Index").Trim('/'); 
Run Code Online (Sandbox Code Playgroud)


Ade*_*eel 0

由于 http 的无状态特性,asp.net mvc 不提供此功能,但您可以使用会话或 cookie 存储此功能