2011-10-18 32 views
6

Tôi đã tạo tệp .cshtml Razor toàn cầu trong thư mục App_Code của dự án MVC để khai báo hàm @helper. Vấn đề là tôi không thể sử dụng Html.ActionLink (hoặc các phần mở rộng khác) trong các hàm trợ giúp. Tôi đã cố gắng để nhập khẩu các lớp học thông qua một @using nhưng điều đó không làm việc. Bất kỳ ý tưởng?Html.ActionLink không thể được sử dụng trong trình trợ giúp Razor toàn cầu

+1

xem câu hỏi này - http://stackoverflow.com/questions/4710853/using-mvc-htmlhelper-extensions-from-razor-declarative-views –

Trả lời

7

Bạn có thể thêm dòng sau vào helper của bạn, để xác định Html

var Html = ((System.Web.Mvc.WebViewPage)WebPageContext.Current.Page).Html; 

(Copied from this answer)

+0

Tha nks, quá tệ không có một giải pháp đẹp hơn :) – Marthijn

2

Tiếp tục để câu trả lời được chấp nhận, để làm cho @Html sẵn trong suốt tập tin helper:

@using System.Web.Mvc.Html 

... 

@functions { 

    protected static new System.Web.Mvc.HtmlHelper Html 
    { 
     get 
     { 
      return ((System.Web.Mvc.WebViewPage)WebPageContext.Current.Page).Html;  
     } 
    } 
} 
Các vấn đề liên quan