如何在ActionLink的字符串部分添加NEW LINE字符?

时间:2009-08-07 15:49:43

标签: c# asp.net asp.net-mvc actionlink

我正在用C#构建一个Ajax.ActionLink:

<%= Ajax.ActionLink("f lastname", ...more stuff

我希望在“f”和“lastname”之间有一个新的行字符。我怎么能做到这一点?我认为特殊字符是\ n但是这不起作用,<br>也不起作用。

9 个答案:

答案 0 :(得分:3)

你可能不得不恢复做类似的事情:

<a href="<%= Url.Action("action") %>">f<br />last</a>

然后手动连接Ajax位。

答案 1 :(得分:1)

试试这个:

<%= Ajax.ActionLink("f<br />lastname", ...more stuff

答案 2 :(得分:0)

您不能使用<br />,因为ActionLink方法(实际上我相信所有的html和ajax扩展方法)都会对字符串进行编码。因此,输出将类似于

<a href="...">f&lt;br /&gt;lastname</a>

你可以尝试的是格式化:

<%= string.Format(Ajax.ActionLink("f{0}lastname", ...more stuff), "<br />") %>

答案 3 :(得分:0)

\n曾经为我工作过。但现在似乎已被弃用了。或者,您可以使用NewLine方法,例如:

string jay = "This is a" + Environment.NewLine + "multiline" + Environment.NewLine + "statement";

答案 4 :(得分:0)

您是否尝试过\ r \ n组合?

答案 5 :(得分:0)

怎么样:

<%= Server.UrlDecode(Ajax.ActionLink(Server.UrlEncode("f<br/>lastname"), ...more stuff

答案 6 :(得分:0)

这对我有用 -

<%= HttpUtility.HtmlDecode(Html.ActionLink("AOT &lt;br/> Claim #", "actionName" ))%>

答案 7 :(得分:0)

我认为Andrew Hare的回答是正确的。如果您的要求稍微复杂一些,您可以选择创建自己的AjaxHelper或HtmlHelper。这将涉及创建适用于AjaxHelper和HtmlHelpers的自定义扩展方法,方法如下:

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());
    }
}

您可以使用dotPeek或您喜欢的.NET反射工具来检查ASP.NET MVC附带的标准扩展(例如,ActionLink)等,以了解Microsoft如何实现大多数这些扩展方法。他们有一些非常好的模式来写这些。在过去,我采用这种方法以可读的方式简化输出HTML,例如,用于Google Maps或Bing Maps集成,用于创建ActionImage选项,例如@Html.ActionImage(...)或集成输出Textile - 通过启用@Html.Textile("textile formatted string")等语法来格式化HTML。

如果你在一个单独的程序集中定义它(就像我一样),那么请记住将它包含在项目引用中,然后将它添加到项目的Web.config中。

显然,这种方法对于您的特定目的来说是过度的,因此,我的投票是针对您的具体案例的Andrew Hare方法。

答案 8 :(得分:0)

问题被问到已经好几年了,但我遇到了麻烦。我找到了答案(在MVC中):

ActionLink中的文字:... ActionLink(“TextLine1”+ Environment.Newline +“TextLine2”,...

在ActionLink中,有一个用这一行指向css的类:

空白:前;

就是这样。我已经看到他们将整个Actionline放在&lt;前&gt; &LT; / pre&gt;标签,但这导致了比解决更多的问题。