2012-09-07 39 views
17

Tôi có một dao cạo 1/mvc 3 hiện có, với một vài lồng nhau if - rất đơn giản, nhưng sau khi nâng cấp lên dao cạo 2/mvc 4, nó được khiếu nại khi chạy và biên dịch (BuildViews) về } expected. Nó được sử dụng để làm việc tốt.Tại sao chế độ xem dao cạo của tôi phàn nàn "} dự kiến" sau khi nâng cấp lên dao cạo 2/mvc 4?

  • Tôi đã kiểm tra tất cả các yếu tố đều được hình thành/đóng
  • Tôi đã kiểm tra tất cả các {/} được cân bằng - đây không phải là vấn đề end-of-file

Điều gì có thể sai?

Trả lời

37

Một số kỳ dị dao cạo kế thừa đã được sửa trong bản nâng cấp dao cạo 2/mvc 4; một Gotcha thú vị là trong dao cạo 1, sau đây là hợp pháp (trong một khu vực code):

string foo = @Some.Complex.Expression; 

Lưu ý rằng @ có thừa và không chính xác, nhưng điều đó dao cạo 1 không phàn nàn. Tuy nhiên, dao cạo 2 là kén chọn và bị nhầm lẫn, báo cáo lỗi } expected. Dòng này nên được thay thế bằng:

string foo = Some.Complex.Expression; 

Đây là một chút tinh tế, bởi vì các lỗi xảy ra có để làm với niềng răng ({/}), và có thể một số dòng đi từ dòng thông báo.

+0

Xem thêm: http://aspnetwebstack.codeplex.com/workitem/390 –

+0

CẢM ƠN BẠN. Điều này hoàn toàn cứu được ngày của tôi. Cùng một vấn đề xảy ra nếu bạn làm 'var @class =" something ";' –

+0

Yup. Đây là * chính xác * nó. Cảm ơn! – Rolandus

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