Tôi đang sử dụng chế độ xem Dao cạo với chế độ xem trước của asp mvc 3ASP MVC Razor xem phương pháp mở rộng, làm thế nào để tạo ra 'toàn cầu' phương pháp xem?
Tôi đang cố gắng tạo một số phương pháp mà tôi muốn có sẵn trực tiếp trong chế độ xem. Đây không phải là phương pháp trợ giúp thực sự Html vì vậy tôi không nghĩ rằng mở rộng HtmlHelper có ý nghĩa?
mục tiêu của tôi, có thể gọi các phương thức trong giao diện tức là
@HelloWorld(); vs @Html.HelloWorld()
tôi có thể nhận Html.HelloWorld để làm việc bằng cách tạo ra một phương pháp mở rộng trên HtmlHelper
public static class HtmlExtensions
{
public static string HelloWorld(this HtmlHelper helper)
{
return "Hello";
}
}
Tôi muốn làm điều tương tự nhưng đối với quan điểm; vấn đề của tôi - loại đối tượng nào là chế độ xem?
Lưu ý: tôi đã có thể có được điều này để làm việc bằng cách xác định các phương pháp trong trang .cshtml
@functions
{
public string HelloWorld()
{
return "Hello";
}
}
@HelloWorld() @* now this works *@
sau đó tôi đã cố gắng để đặt mã này tập tin _viewstart.cshtml tôi nghĩ nó sẽ có sẵn trong tất cả các quan điểm nhưng nó đã không
nếu tôi biết loại quan điểm đã được tôi nghĩ rằng nó có thể dễ dàng mở rộng, bất kỳ sự giúp đỡ đánh giá cao
+1 . Đây là một giải pháp đẹp hơn nhiều so với việc viết một phương pháp mở rộng trên WebViewPage –
Thực ra, tôi hoàn toàn không đồng ý với Noel Abrahams - đó là loại tình huống mà các phương pháp mở rộng được phát minh ra. Giải pháp được đưa ra ở trên có nghĩa là bạn có thay đổi cấu hình mà bạn sẽ cần thực hiện trong mọi ứng dụng web mà bạn muốn sử dụng. Ngoài ra, bằng cách sử dụng một phương pháp mở rộng làm cho nó là một 'kéo' sử dụng cho xem mà muốn sử dụng nó trong khi bằng cách thay đổi các lớp cơ sở lực lượng mỗi View để kế thừa rằng cho dù nó muốn hay không. –