2011-05-20 53 views
0

在我的個人開發環境中,我有一個自己的ip(127.0.0.2)上的asp.net應用程序,因此root永遠是「/」asp.net應用程序的正確根路徑(在dev和服務器上)

在服務器上,它是在一個應用程序,它要像「servername.com/appname/」

我建立超鏈接到文件的字符串似乎並不能正確的解析出文件名服務器。他們拿出「servername.com」而不是appname部分。

我錯過了什麼?

我所說的網絡輔助類(如下圖所示),以得到一個菜單路徑:

public static string getOnsiteAdministratorMenu() 
     { 
      string syllabusSearchURL = "/admin/syllabus_Search.aspx"; 

      return "<ul id=\"nav\"><li><a href=\"EnrollmentLookup.aspx\">Enrollment Search</a></li>" + 
      "<li><a href=\"OnsiteEnrollment_AddNew.aspx\">Enrollment Add</a></li>" + 
      "<li><a href=\"ViewSingleDocument.aspx\">Document Search</a></li>" + 
      "<li><a href=\"/Admin/SyllabusAdd.aspx\">Add Syllabus</a></li>" + 
      "<li><a href=\"" + syllabusSearchURL + "\">Edit Syllabus</a></li>" + 
      "<li><a href=\"Course_add.aspx\">Add Course</a></li>" + 
      "<li><a href=\"Group_add.aspx\">Add Group</a></li>" + 
      "<li><a href=\"GroupSearch.aspx\">Groups</a></li>" + 
      "<li><a href=\"Admin/Admin_GradeChanges.aspx\">Audit Grade Changes</a></li></ul>"; 
     } 

回答

1

這裏所有其他的答案是正確的前加上這一點,但我只是想補充一下。要做他們的建議並動態地返回HTML內容,你可以使用HtmlGenericContro類然後你可以在裏面添加嵌套控件。

HtmlGenericControl adminMenu = new HtmlGenericControl("ul"); 
    HtmlGenericControl liItem = new HtmlGenericControl("li"); 
    HyperLink link = new HyperLink(); 

    link.NavigateUrl = "~EnrollmentLookup.aspx"; 
    liItem.Controls.Add(link); 
    adminMenu.Controls.Add(liItem); 

    StringBuilder sb = new StringBuilder(); 
    StringWriter tw = new StringWriter(sb); 
    HtmlTextWriter hw = new HtmlTextWriter(tw); 

    adminMenu.RenderControl(hw); 
    return sb.ToString(); 

雖然你可能還沒有使用用戶控件來定義您的AdminMenu甚至更好

0

當你使用服務器控件,你可以使用〜創建這始終是正確的相對路徑(本地主機和服務器上):

<asp:HyperLink id="hyperlink1" NavigateUrl="~/EnrollmentLookup.aspx" 
       Text="Enrollment Search" runat="server"/>  

如果您要訪問使用System.IO物理設備,你可以調用使用Server.Mappath

Server.MapPath("~/log/data.txt"); 

如果你需要一個絕對路徑,你可以使用

VirtualPathUtility.ToAbsolute("~/EnrollmentLookup.aspx"); 

但我建議,您使用用戶控件或ASP:直放站生成HTML。

0

URL ResolveUrl("~");

相關問題