C# 如何从asp.net mvc 2项目中的非控制器静态类生成url?
我在asp.net mvc2项目中创建了Html帮助程序类:C# 如何从asp.net mvc 2项目中的非控制器静态类生成url?,c#,asp.net-mvc-2,html-helper,routevalues,url-action,C#,Asp.net Mvc 2,Html Helper,Routevalues,Url Action,我在asp.net mvc2项目中创建了Html帮助程序类: public static class CaptionExtensions { public static string Captions(this HtmlHelper helper, Captions captions) { var sb = new StringBuilder(); sb.AppendLine("<ul>"); foreach (var
public static class CaptionExtensions
{
public static string Captions(this HtmlHelper helper, Captions captions)
{
var sb = new StringBuilder();
sb.AppendLine("<ul>");
foreach (var caption in captions)
{
// var url = Url.Action("CaptionCategory", new {id = caption.Code} )
sb.AppendLine("<li>");
sb.AppendLine( "<a href="+ url + ">");
sb.AppendLine( caption);
sb.AppendLine( "</a>");
sb.AppendLine("</li>");
}
sb.AppendLine("</ul>");
return sb.ToString();
}
}
公共静态类CaptionExtensions
{
公共静态字符串标题(此HtmlHelper帮助程序,标题标题)
{
var sb=新的StringBuilder();
sb.附录(“”);
foreach(标题中的变量标题)
{
//var url=url.Action(“CaptionCategory”,新的{id=caption.Code})
某人加上一行(- );
某人加上一行(“”);
某人加上一行(“
”);
}
sb.附录(“
”);
使某人返回字符串();
}
}
我需要生成类似的方式在评论行url。注释代码是我在控制器类中执行此操作的方式,但这是helper类(静态上下文)。任何帮助???只需从HtmlHelper的RequestContext属性中创建一个UrlHelper,并使用它生成URL:
var urlHelper = new UrlHelper(helper.ViewContext.RequestContext);
var url = urlHelper.Action("CaptionCategory", new { id = caption.Code });
或者在您的特定情况下,使用html帮助程序生成锚定,而不是像您那样对其进行硬编码:
sb.AppendLine("<li>");
sb.AppendLine(
helper.ActionLink(
caption,
"CaptionCategory",
new { id = caption.Code }
).ToHtmlString()
);
sb.AppendLine("</li>");
sb.AppendLine();
附加物(
helper.ActionLink(
说明文字
“标题类别”,
新建{id=caption.Code}
).ToHtmlString()
);
某人加上一行(“ ”);
为了实现这一点,您显然应该使用System.Web.Mvc.Html添加
到文件顶部,以便将ActionLink
扩展方法引入范围。非常感谢,这就是我需要的。