2010-05-07 26 views
8

Tôi đang phát triển ứng dụng ASP.NET MVC 2.0 mới và muốn sử dụng khối mã hóa ASP.NET 4 mới.Khối mã hóa HTML - Cụm từ biểu thức không hợp lệ ':'

Xem Mã của tôi chứa <%: Model.ActivityName %> tuy nhiên Visual Studio được báo cáo:

Unexpected token

ở vị trí của : (dấu hai chấm). Khi tôi chạy ứng dụng, tôi nhận được lỗi biên dịch sau:

Compiler Error Message: CS1525: Invalid expression term ':'

Tôi đang thiếu gì?

Chúc mừng mọi trợ giúp/lời khuyên.

+1

bạn đang làm phiên bản nào của VS này? –

+0

VS 2008. Tôi đã tạo ứng dụng của tôi dưới dạng ứng dụng MVC 2.0. Đây có phải là tự động không sử dụng ASP.NET 4? –

+0

@Sam: Rõ ràng, 2008. – SLaks

Trả lời

13

Tính năng này còn xa lạ với ASP.Net 4.0, đó là lần lượt mới để Visual Studio 2010.

Trong các phiên bản trước đó, bạn nên viết

<%= Html.Encode(Model.ActivityName) %> 
+0

Cảm ơn Schabse. Tôi hoàn toàn bỏ qua ý tưởng rằng tôi có lẽ cần phải phát triển điều này trong VS 2010. Nhiều đánh giá cao. –

+0

Bạn không cần sử dụng VS2010 để sử dụng ASP.Net MVC. – SLaks

+0

Vâng tôi biết. Tôi chỉ muốn có thể sử dụng tính năng mã hóa. Đây là một dự án hoàn toàn mới vì vậy tôi muốn sử dụng những thứ tăng trưởng nhất có thể. Các dự án MVC 1 của tôi đã được dev'd trong năm 2008 –

1

như đã được chỉ ra, bạn cần sử dụng phiên bản chính xác của VS. nếu bạn không thể và bạn cần phải thay đổi tất cả các mã của bạn để sử dụng phương pháp Html.EncodePhil Haack had a post about doing the opposite có thể hữu ích.

Không phải là tôi đã gắn liền với nó, nhưng việc tìm kiếm đảo ngược và thay thế trong VS nên một cái gì đó giống như

\<\%:b*{[^%]*}:b*\%\> 

thay thế bằng

<%:= Html.Encode\(\1 \) %> 

hoặc một cái gì đó gần đó. Giống như tôi nói tôi đã không có IDE tại thời điểm này để kiểm tra, vì vậy hãy thử nó trước khi bạn chạy nó trên toàn bộ dự án của bạn.

+0

Chúc mừng Sam và cảm ơn cho liên kết blog. Tôi đọc bản tin này ngày hôm qua. :) –

5

Âm thanh như khung đích không được đặt thành .NET Framework 4.0.

Để thực hiện việc này, trong trình khám phá giải pháp, nhấp chuột phải vào gốc của dự án và chọn các thuộc tính trong menu ngữ cảnh.

Trong tab ứng dụng, bạn sẽ thấy trình đơn thả xuống cho Khung mục tiêu. Thay đổi thành .NET Framework 4.0.

Hãy thử và biên dịch để xem lỗi có bị biến mất hay không.

+0

Bingo! Điều đó đã làm nó cho tôi. Tôi đã làm việc trên một dự án khác trong 3.5 và bị kẹt khi tôi bắt đầu giải pháp mới. Cảm ơn DevDave! – kdmurray

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