Tôi nghĩ rằng câu trả lời Andrew Hare là đúng. Nếu bạn có yêu cầu phức tạp hơn một chút, bạn có tùy chọn để tạo AjaxHelper hoặc HtmlHelper của riêng bạn. Điều này sẽ liên quan đến việc tạo ra các phương pháp mở rộng tùy chỉnh mà làm việc trên AjaxHelper và HtmlHelpers, bằng cách làm một cái gì đó như:
public static class CustomHtmlHelperExtensions
{
public static MvcHtmlString FormattedActionLink(this HtmlHelper html, ...)
{
var tagBuilder = new TagBuilder("a");
// TODO : Implementation here
// this syntax might not be exact but you get the jist of it!
return MvcHtmlString.Create(tagBuilder.ToString());
}
}
Bạn có thể sử dụng dotPeek hoặc công cụ .NET phản ánh yêu thích của bạn để kiểm tra các phần mở rộng tiêu chuẩn đi kèm với ASP.NET MVC (ví dụ, ActionLink) vv để tìm cách Microsoft đã triển khai hầu hết các phương thức mở rộng đó. Họ có một số mẫu khá hay để viết những thứ đó. Trước đây, tôi đã thực hiện phương pháp này để đơn giản hóa việc xuất HTML theo cách dễ đọc, chẳng hạn như, cho Google Maps hoặc tích hợp Bing Maps, để tạo các tùy chọn như ActionImage
ví dụ: @Html.ActionImage(...)
hoặc để tích hợp xuất HTML định dạng dệt bằng cách bật cú pháp như @Html.Textile("textile formatted string")
.
Nếu bạn xác định điều này trong một hội đồng riêng biệt (như tôi làm), hãy nhớ bao gồm điều này vào tài liệu tham khảo dự án của bạn và sau đó thêm nó vào Web.config của dự án là tốt.
Rõ ràng, cách tiếp cận này là quá mức cần thiết cho các mục đích cụ thể của bạn và vì lý do này, phiếu bầu của tôi dành cho phương pháp tiếp cận của Andrew Hare cho trường hợp cụ thể của bạn.
Nguồn
2013-01-28 19:50:16
Bạn có thể phải bao gồm p này trong @ Html.Raw những ngày này. –