Theo this question, nên anh phải để có thể viết một cái gì đó như thế này:Việc sử dụng các thuộc tính dữ liệu HTML-5 có bị hỏng trong ASP.NET MVC 4 (beta) không?
@Html.ActionLink("Delete", "Delete", "Message", new { data_id=id, @class="delete" })
hoặc như một người dùng T4MVC hạnh phúc có thể làm:
@Html.ActionLink("Delete", MVC.Message.Actions.Delete(), new { data_id=id, @class="delete" })
Và có được gạch dưới trong "data_id" thay thế trong khi hiển thị:
<a href="/message/delete" class="delete" data-id="42">Delete</a>
Tuy nhiên, điều này dường như không hoạt động trong MVC 4 beta. Bất cứ ai khác nhìn thấy vấn đề này?
Đây có phải là sự thay đổi có chủ ý không và nếu có, tôi nên làm gì?
CẬP NHẬT - cách sửa chữa (bằng tay)
tôi đã áp dụng các thay đổi sau vào file T4MVC.tt, mà sửa chữa vấn đề trong mã được tạo:
public static MvcHtmlString ActionLink(this HtmlHelper htmlHelper, string linkText, ActionResult result, object htmlAttributes, string protocol = null, string hostName = null, string fragment = null) {
//was: return ActionLink(htmlHelper, linkText, result, new RouteValueDictionary(htmlAttributes), protocol, hostName, fragment);
return htmlHelper.RouteLink(linkText, null, protocol, hostName, fragment, result.GetRouteValueDictionary(), HtmlHelper.AnonymousObjectToHtmlAttributes(htmlAttributes));
}
CẬP NHẬT 2 - FIX AVAILABLE
David Ebbo đã phản ứng nhanh với the reported issue và đã sáp nhập vào sửa chữa ở trên vào T4MVC.
CẬP NHẬT 3 - Vá FIX
Khá embarassingly, sửa chữa ban đầu đệ trình đã làm trong thực tế không hoạt động, vì nó vẫn gọi là tình trạng quá tải không hợp lệ. Bây giờ tôi đã sửa đổi mã để làm giống như MVC thực hiện nội bộ (sử dụng phương thức trợ giúp của họ), và thông báo cho David để có nó bao gồm trong T4MVC. Lấy 2.6.70 từ codeplex hoặc cập nhật bằng NuGet khi được phát hành, có thể không lâu.
Tôi thích viết trực tiếp Delete .. @ Html.ActionLink() không thân thiện với giao diện người dùng. –
Nhưng không phải là