我正在用C#构建一个Ajax.ActionLink:
<%= Ajax.ActionLink("f lastname", ...more stuff
我希望在“f”和“lastname”之间有一个新的行字符。我怎么能做到这一点?我认为特殊字符是\ n但是这不起作用,<br>
也不起作用。
答案 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<br />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 <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;标签,但这导致了比解决更多的问题。