2011-02-10 69 views
1

参数i具有一个asp.net-MVC位点和网页中的一个被如何重定向到URL与来自一个asp.net-MVC控制器

http://www.mysite.com/Report 

用户可以添加,其生成客户端滤波网址是这样的:

http://www.mysite.com/Report?Region=US 

我想利用这样一个链接:

http://www.mysite.com/MyLastReport 

,并有一个控制器的动作,模仿就好像一个人加了一些参数的URL是这样的:

http://www.mysite.com/Report?Region=US 

我的服务器端代码使用:

Request.Params[] 

过滤我的疑问,我想使用相同的代码路径来获得结果就好像URL在客户端有这些参数一样。

也是,反正是有字面上做从服务器端的URL重定向,所以我实际上改变的URL在浏览器中:

http://www.mysite.com/Report?Region=US 

回答

2

添加以下内容在Global.asax:

protected void OnBeginRequest(object sender, EventArgs e) 
{ 
    if (Request.Url.AbsolutePath.Equals("/MyLastReport", StringComparison.OrdinalIgnoreCase)) { 
     Context.RewritePath("/Report?Region=US"); 
    } 
} 

public override void Init() 
{ 
    base.Init(); 
    BeginRequest += OnBeginRequest; 
} 

UPDATE:从控制器动作,您可以用RedirectToAction方法:

RedirectToAction("ReportActionName", new { Region = "US" }); 
+0

K. - 我想在控制器操作中执行此操作,因为过滤器基于数据库查询 – leora 2011-02-10 12:00:45

相关问题