2012-11-19 57 views
0

我有一個在IIS 7.5上運行的MVC4/.Net 4網站。在我的web.config文件我已經在我的塊如下:Web.config urlMappings - 適用於本地頁面,不適用於遠程頁面

<urlMappings enabled="true"> 
<add url="~/2013calendar" mappedUrl="~/CustomerService/RequestPocketCalendar" /> 
<add url="~/teachers" mappedUrl="http://www.somexternalsite.com/teachers/" /> 
</urlMappings> 

本地重定向所有工作的偉大,但任何被重定向過的部位,如/老師在上面的例子返回鏈接「HTTP ://www.somexternalsite.com/teachers「不是有效的虛擬路徑。

缺少什麼我在這裏?

回答

0

嗯,我結束了創建一個頁面來處理外部重定向如如下:

redirect.aspx

<%@ Page Language="C#" %> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

<script runat="server"> 
void Page_Load(object sender, EventArgs e) 
{ 
    var page = Request.QueryString["page"]; 
    Response.Redirect("http://"+page); 
} 
</script> 

所以在我的web.config我已經被引用爲這樣的外部文件:

<add url="~/teachers" mappedUrl="~/redirect.aspx?page=www.somexternalsite.com/teachers/" /> 

很好用!

0

如果我沒有弄錯,mappedUrl字段是相對於應用程序根目錄的路徑。因此,「http://www.somexternalsite.com/teachers/」無效。

如果你想配置此重定向,我只想創造你的根控制器中的「教師」的動作,然後使用以下命令:

return Redirect("http://www.somexternalsite.com/teachers"); 
+0

你是正確的,它是相對於根...但你是什麼意思,硬編碼到列表中? – cardiac7

+0

我以爲這是爲了別的東西,沒有仔細看:P。更新與修復。 – TNCodeMonkey

+0

出於好奇,爲什麼不使用RouteConfig文件中的? – TNCodeMonkey

相關問題