2009-03-04 33 views
7

CẬP NHẬT vấn đề này không tồn tại trong các bit phát hành ASP.NET MVCASP.NET MVC RC trả về con đường sai cho Url.Content

Tôi có một ứng dụng ASP.NET MVC RC mà chạy tốt dưới trình gỡ lỗi chạy từ http://localhost:9002/ Nhưng khi tôi xuất bản nó lên http://localhost/Zot/ các cuộc gọi đến Url.Content đang trả lại giá trị không chính xác.

Tôi có thẻ script như

<script src="<%= Url.Content("~/Scripts/util.js") %>" ... 

Trong trang web xuất bản này tạo ra:

<script src="Zot/Scripts/util.js" ... 

Thay vì

<script src="/Zot/Scripts/util.js" ... 

hoặc

<script src="Scripts/util.js" ... 
.210

Tôi có thẻ kiểu như:

<link href="~/Content/Site.css" runat="server" ... 

Đó tạo điều đúng đắn:

<link href="Content/Site.css" ... 

Mọi góp ý về lý do tại sao Url.Content là không. Tôi không thể đặt rõ ràng runat="server" trên các thẻ <script>.

Trả lời

6

tôi có xu hướng sử dụng Rob Conery Script Registration helper:

public static string RegisterJS(this System.Web.Mvc.HtmlHelper helper, string scriptLib) { 
    //get the directory where the scripts are 
    string scriptRoot = VirtualPathUtility.ToAbsolute("~/Scripts"); 
    string scriptFormat="<script src=\"{0}/{1}\" type=\"text/javascript\"></script>\r\n"; 
    return string.Format(scriptFormat,scriptRoot,scriptLib); 
} 

Cách sử dụng:

<%= Html.RegisterJS("myscriptFile.js") %> 

Như bạn có thể thấy trong ví dụ này sử dụng để giải quyết VirtualPathUtility url của thư mục Scripts. Điều này cũng sẽ giúp bỏ qua vấn đề của súp thẻ.

+0

Cảm ơn! Điều đó làm việc tuyệt vời. –

+0

Rob, xin vui lòng cũng lưu ý phản ứng của Levi, như rõ ràng đây là một lỗi đã được cố định trong RC2. Chúc mừng. –

2

Điều này cần phải được khắc phục trong RC2. Nếu bạn đang sử dụng RC2 và vẫn gặp sự cố này, vui lòng gửi lỗi tại http://forums.asp.net/1146.aspx.

Các vấn đề liên quan