2011-10-20 30 views
7

Trong số App_code, tôi có chức năng trợ giúp được gọi là FormatTelephone(string number) trong Formatter.cshtml. Tôi đã cố gắng truy cập nó trong một góc nhìn bởi @Formatter.FormatTelephone(number). Khi tôi kiểm tra nó, nó nóiKhông thể truy cập Razor @helper trong App_Code

Compiler Error Message: CS0103: Tên 'Formatter' không tồn tại trong bối cảnh hiện nay

nguyên nhân có thể có của nó là gì? Cảm ơn!

Trả lời

7

Tôi chạy vào vấn đề này chính xác khi triển khai trang web lên máy chủ khác. Đảm bảo tệp App_Code/Formatter.cshtml thực sự được sao chép vào máy chủ! Lỗi của tôi là tệp có hành động xây dựng được đặt thành 'Không có'. Nhấp chuột phải vào tệp và chọn Thuộc tính, rồi đặt Hành động Xây dựng thành 'Nội dung'.

LƯU Ý:

Nếu bạn không có asp.net MVC 3/4 cài đặt chắc chắn dlls sau nằm trong thư mục bin của bạn.

  • System.Web.Mvc
  • Microsoft.Web.Infrastructure
  • System.Web.Razor
  • System.Web.WebPages
  • System.Web.WebPages.Razor

Scott Hanselman có một bài đăng trên blog về những gì có thể gây ra sự cố của bạn. BIN Deploying ASP.NET MVC 3 with Razor to a Windows Server without MVC installed

+0

Tôi chạy vào tình huống tương tự. Những người trợ giúp đã không làm việc trong máy chủ được triển khai và vấn đề là theo mặc định các tệp trợ giúp có hành động xây dựng được đặt thành 'Không có'. Cảm ơn vì tiền boa! – vcRobe

1

Các công trình sau đây cho tôi trong ~/App_Code/Formatter.cshtml:

@helper FormatTelephone(string number) 
{ 
    <div>Formatted @number</div> 
} 

và sau đó trong một số quan điểm:

@Formatter.FormatTelephone("123") 
+0

Có. Tôi muốn chia sẻ chức năng trợ giúp này trong nhiều khung nhìn, vì vậy tôi đặt nó trong 'App_code \ Formatter.cshtml'. Tôi đang cố gắng truy cập nó trong 'Views \ Shared \ _InfoView.cshtml'. Tuy nhiên, nó không hoạt động và nói rằng 'Formatter' không tồn tại. Thật kỳ lạ, bởi vì khi tôi gõ nó, intellisense nhận ra 'Formatter'. – uni

+0

@uni, bạn đang truyền thông số nào? Nó phải là một chuỗi. Hãy thử hardcoding một giá trị như tôi đã làm trong ví dụ của tôi. –

+0

Vâng, tôi chắc chắn đó là một chuỗi. – uni

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