2012-06-25 44 views
6

Tôi đang cố gắng hiển thị một phần xem bằng cách sử dụng một phương thức trợ giúp tùy chỉnh. Vấn đề duy nhất là, tôi không thể vượt qua vấn đề cú pháp này. Mẫu thiết lập cho tệp cshtml này là một tập hợp các mô hình IE mà tôi đã định nghĩa là Hoạt động. Tôi chắc chắn đây là một sửa chữa dễ dàng. Dưới đây là một ví dụ về những gì tôi đang nhìn thấy:Sự cố cú pháp- Dao cạo MVC4

Tôi có khối mã này:

@using(Html.BeginForm()) { 
     <div id="editor_rows"> 
      @foreach (var item in Model){ 
      Html.RenderPartial("OperationEditorRow", item); 
      } 
     </div> 
    } 

này mang lại cho tôi những lỗi sau khi chạy:

Unexpected "{" after "@" character. Once inside the body of a code block (@if {}, @{}, etc.) you do not need to use "@{" to switch to code. 

Nhưng nếu tôi loại bỏ các @ đăng nhập trước tuyên bố foreach, mọi thứ được hiểu là văn bản thuần túy. Vì vậy, tôi cố gắng đặt một @ trước Html như sau:

@using(Html.BeginForm()) { 
     <div id="editor_rows"> 
      @foreach (var item in Model){ 
      @Html.RenderPartial("OperationEditorRow", item); 
      } 
     </div> 
    } 

này trở lại với một lỗi biên dịch nói rằng:

Cannot implicitly convert type void to object 

Nếu tôi chạy dự án từ đây, tôi nhận được một lỗi thời gian chạy nói rằng:

The best overloaded method match for 'System.Web.WebPages.WebPageExecutingBase.Write(System.Web.WebPages.HelperResult)' has some invalid arguments 

Tôi cho rằng điều này liên quan đến lỗi trước đó. Nếu ai có gợi ý cho tôi, xin hãy giúp đỡ.

+0

Cố gắng sử dụng 'Partial' thay vì' RenderPartial' – lucask

+0

Mã của bạn có vẻ đúng. Hãy thử khởi động lại Visual Studio. Điều đó đã được biết để sửa một số dị thường như thế này. –

+0

Cảm ơn cả hai đề xuất của bạn. Tôi đã thử chúng, nhưng tôi vẫn thấy những lỗi tương tự. Tôi nghĩ rằng trái tim của vấn đề nằm trong thông báo lỗi thứ hai: Không thể chuyển đổi loại void thành đối tượng –

Trả lời

1

Sự cố được giải quyết. Tôi đã làm việc này với một đồng nghiệp. Nó chỉ ra lỗi refferring đến phương pháp ghi chỉ vào một vấn đề bên trong xem một phần của tôi. Tôi đã sử dụng @ {} xung quanh một khối mã bên trong, có nhiều khả năng cũng ném các lỗi cú pháp khác. Cảm ơn bạn đã trả lời.

0

Thêm {} xung quanh cuộc gọi kết xuất của bạn như @ {RenderPartial ...}

+0

Cảm ơn bạn đã phản hồi, nhưng khi tôi làm điều này, tôi vẫn thấy lỗi cú pháp giống như trước: Không mong muốn "{ "sau" @ "ký tự. Khi đã ở trong phần thân của một khối mã (@if {}, @ {}, v.v.), bạn không cần sử dụng "@ {" để chuyển sang mã. –

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