2010-01-22 38 views
13

Nếu tôi sử dụng dòng sau trong giao diện mặc định của tôi/Home/IndexVấn đề với Url.Content trong ASP.NET MVC vào Default Route

<script language="javascript" src="<%=Url.Content("~/Scripts/jquery-1.3.2.js")%>" type="text/javascript" ></script> 

Nếu tôi lướt đến vị trí này bằng cách sử dụng url sau http : //127.0.0.1: 9999/Home/Index trang được kết xuất một cách chính xác

<script language="javascript" src="/Scripts/jquery-1.3.2.js" type="text/javascript" ></script> 

Nếu tôi sử dụng url sau http: //127.0.0.1: 9999/(mặc định có dây Home/Index) trang hiển thị điều này:

<script language="javascript" src="//Scripts/jquery-1.3.2.js" type="text/javascript" ></script> 

Có ai biết cách giải quyết vấn đề này không?

EDIT:

FYI: Tôi đang sử dụng ASP.NET MVC 2 RC Và đây là cấu hình tuyến đường của tôi:

routes.MapRoute(
"Default",            // Route name 
"{controller}/{action}/{id}",       // URL with parameters 
new { controller = "Home", action = "Index", id = "" } // Parameter defaults 
); 
+1

xin lỗi nhưng tôi không thể tái tạo hành vi này. bạn có thể vui lòng đăng nội dung của thủ tục RegisterRoutes() của bạn và phiên bản của asp.net mvc bạn đang sử dụng không? –

+0

Như Marc nói, điều này không nên xảy ra. Tôi cũng không thể tái tạo nó. – mare

Trả lời

0

Tôi đã có một vấn đề rất giống với Asp.net sử dụng yêu cầu. ApplicationPath ... và bọc nó như sau

public string AppRoot() 
    { 
     var appPath = Request.ApplicationPath; 
     if (appPath.EndsWith("/")) 
      return appPath; 
     else 
      return appPath + "/"; 

    } 
1

Nếu bạn sử dụng IIS6 hoặc WinXP Cassini bạn nên đăng ký tuyến đường thêm một:

if (Environment.OSVersion.Version.Major < 6) // IIS6 and WinXP Cassini 
     { 
      routes.MapRoute(
       "Root", 
       "", 
       new 
        { 
         controller = "Home", 
         action = "Index", 
         id = UrlParameter.Optional 
        } 
       ); 
     } 
0

Tại sao bạn giữ id của mình dưới dạng chuỗi trống? Tôi nghĩ rằng điều này có thể gây ra vấn đề. Bạn có thể tìm thấy kết quả tốt hơn bằng cách cố gắng điều sau đây:

routes.MapRoute(
"Default",            // Route name 
"{controller}/{action}/{id}",       // URL with parameters 
new { controller = "Home", action = "Index", id = "" } // Parameter defaults 
); 

để

routes.MapRoute(
"Default",            // Route name 
"{controller}/{action}/{id}",       // URL with parameters 
new { controller = "Home", action = "Index", UrlParameter.Optional } // Parameter defaults 
); 
0

Vâng này, cách khác bạn có thể làm như sau:

tạo một khóa trong appSettings phần của file web.config .

<add key="DomainName" value="http://http://127.0.0.1:9999/" /> 

Bây giờ, bất cứ khi nào bạn muốn chỉ định giá trị "src" của bất kỳ hình ảnh, tệp javascript css nào, bạn đều có thể sử dụng khóa này. nó sẽ được xác định một gốc cho bạn và sau đó bạn có thể xác định tại đường dẫn bạn đã đặt tập tin của bạn. tức là trong trường hợp của bạn:

<script language="javascript" src="<%=System.Configuration.ConfigurationManager.AppSettings["DomainName"] %>Scripts/jquery-1.3.2.js" type="text/javascript" ></script> 
Các vấn đề liên quan