C# 如何创建自定义MVC3 ActionLink方法?
可能重复:C# 如何创建自定义MVC3 ActionLink方法?,c#,asp.net-mvc,asp.net-mvc-3,C#,Asp.net Mvc,Asp.net Mvc 3,可能重复: 如何创建生成此输出的自定义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>LinkTe
如何创建生成此输出的自定义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>
您可以创建一个新的扩展方法,该方法返回一个由您自己组装的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());
}
}
公共静态类MyHtmlex{
公共静态MvcHtmlString MyActionLink(此HtmlHelper html、字符串操作、字符串控制器、字符串ajaxUpdateId、字符串文本){
var url=UrlHelper.GenerateContentUrl(“~/”+controller+“/”+action);
var result=新的StringBuilder();
result.Append(“您必须为razor创建一个自定义HTML帮助程序。这样,您可以为链接呈现自定义HTML(包括您对span标记的要求)。此帮助程序扩展方法必须返回一个MvcHtmlString对象
这里可以找到一个例子。请不要重复您只在这里问过的同一个问题