如何创建生成此输出的自定义MVC3 ActionLink方法:
<li>
<a href="/Home/ControllerName" data-ajax-update="#scroll"
data-ajax-mode="replace" data-ajax-method="GET"
data-ajax-loading="#progress" data-ajax="true">
<span>LinkText</span> // this span generated inside <a>
</a>
</li>
答案 0 :(得分:7)
你要么创建一个新的扩展方法,它返回一个你自己放在一起的MvcHtmlString
对象(但是请注意html编码),我们创建一个可以渲染的局部视图当你需要它时,你不必通过代码创建HTML。
public static class MyHtmlExtensions {
public static MvcHtmlString MyActionLink(this HtmlHelper html, string action, string controller, string ajaxUpdateId, string spanText) {
var url = UrlHelper.GenerateContentUrl("~/" + controller + "/" + action);
var result = new StringBuilder();
result.Append("<a href=\"");
result.Append(HttpUtility.HtmlAttributeEncode(url));
result.Append("\" data-ajax-update=\"");
result.Append(HttpUtility.HtmlAttributeEncode("#" + ajaxUpdateId));
// ... and so on
return new MvcHtmlString(result.ToString());
}
}
答案 1 :(得分:2)
您必须为剃刀创建自定义HTML帮助程序。这样,您就可以为链接呈现自定义HTML(包括span标记的要求)。这个助手扩展方法必须返回一个MvcHtmlString对象。
creating HTML helper的一个例子可以在这里找到。