2016-03-04 44 views
1

我有web應用程序。在我的母版頁,我有幾個鏈接按鈕其中有如下在IIS中添加應用程序後,aspx頁面無法工作

<asp:LinkButton ID="link1" runat="server" OnClick="linkAge_Click">Age</asp:LinkButton> 

<asp:LinkButton ID="link2" runat="server" OnClick="linkName_Click">Name</asp:LinkButton> 

在我的Visual Studio中我有一個名爲年齡和名字單獨的文件夾,並在那些有Default.aspx的。

的鏈接按鈕的單擊事件我有這樣的代碼

protected void linkAge_Click(object sender, EventArgs e) 
    { 
     Response.Redirect("/Age/"); 
    } 

protected void linkName_Click(object sender, EventArgs e) 
    { 
     Response.Redirect("/Name/"); 
    } 

在IIS我增加了一個叫做「Test」的應用程序,然後添加的所有代碼裏面

當我瀏覽我得到掌握頁面http://localhost:80/Test

,當我在鏈接「時代」的網址變更點擊http://localhost:80/Age

我希望它是http://localhost:80/Test/Age

我在做什麼錯?我可以在不使用任何代碼更改的情況下實現此目

+0

它沒有看到「測試」作爲您的母版頁。嘗試將您的重定向代碼編輯爲「/ Test/Age /」並查看結果。 – apollo

+0

@Apollo offcourse會工作,但正如我所說我不希望改變代碼 – Happy

+0

我明白了。還有其他方法可以執行您提出的問題,但他們需要更改代碼。我會環顧其他選項。如果「測試」文件夾不在根目錄下,可能會發生這種混淆。你檢查了嗎? – apollo

回答

0

您需要添加一個波浪號(〜)來獲取相對於應用程序根目錄的URL:

Response.Redirect("~/Age/"); 

BTW:爲什麼你需要有一個背後回後重定向?你可以使用<asp:HyperLink>代替

+0

任何方式不觸摸代碼? – Happy

+0

只有當您在Windows Server上時:將您的應用程序部署爲網站而不是Web應用程序 – devio

+0

我不能在另一個網站下有網站,因此我還添加了應用程序 – Happy

0

像我們這樣做的MVC從根獲得路徑 - Url.Content( 「〜\行動\」)

在Web表單 -

protected void linkAge_Click(object sender, EventArgs e) 
    { 
     Response.Redirect(Server.MapPath("~/Age/")); 
    } 

你得這樣想我想。

0

由於您只使用/Age/路徑,因此沒有任何內容表明您正在使用相對路徑。對於由IIS管理的代碼,您將使用~/Age/Whatever來表示您打算轉到Age而不是Test

相關問題