我建立一个Ajax.ActionLink在C#这将启动:如何在ActionLink的字符串部分添加NEW LINE字符?
<%= Ajax.ActionLink("f lastname", ...more stuff
,我想那里是词“F”和“姓氏”之间的新行字符。我怎样才能做到这一点?我认为这个特殊字符是\ n,但这不起作用,并且<br>
也不起作用。
我建立一个Ajax.ActionLink在C#这将启动:如何在ActionLink的字符串部分添加NEW LINE字符?
<%= Ajax.ActionLink("f lastname", ...more stuff
,我想那里是词“F”和“姓氏”之间的新行字符。我怎样才能做到这一点?我认为这个特殊字符是\ n,但这不起作用,并且<br>
也不起作用。
试试这个:
<%= Ajax.ActionLink("f<br />lastname", ...more stuff
不能使用<br />
因为ActionLink的方法(实际上我相信所有的HTML和Ajax的扩展方法)编码字符串。因此,输出会像
<a href="...">f<br />lastname</a>
什么你可以尝试,而不是将是一个格式化:
<%= string.Format(Ajax.ActionLink("f{0}lastname", ...more stuff), "<br />") %>
织补不起作用。这让我一个 - “System.Web.HttpCompileException未处理用户代码 错误CS1010:新行常量” – Whozumommy 2009-08-07 16:14:57
嗯,试图使用.Replace而不是string.format?我没有真正使用ajax扩展,所以我不知道另一种方式来做到这一点。 – Joel 2009-08-07 17:48:32
用来为我工作的\n
。但现在它似乎被摧毁了。或者,您可以使用NewLine方法,例如:
string jay = "This is a" + Environment.NewLine + "multiline" + Environment.NewLine + "statement";
您试过\ r \ n组合吗?
您可能需要恢复到做这样的事情:
<a href="<%= Url.Action("action") %>">f<br />last</a>
手动阿贾克斯位
再用线。
如何:
<%= Server.UrlDecode(Ajax.ActionLink(Server.UrlEncode("f<br/>lastname"), ...more stuff
这对我的作品 -
<%= HttpUtility.HtmlDecode(Html.ActionLink("AOT <br/> Claim #", "actionName"))%>
我认为安德鲁野兔的答案是正确的。如果您的需求稍微复杂一点,您可以选择创建自己的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地图或Bing地图集成,用于创建诸如ActionImage
的选项,例如@Html.ActionImage(...)
或通过启用语法来集成输出纺织品格式HTML,例如@Html.Textile("textile formatted string")
。
如果你在一个单独的程序集中定义它(和我一样),然后记住将它包含到你的项目引用中,然后将它添加到项目的Web.config中。
显然,这种方法对于您的特定目的而言是过分的,因此,我的投票是针对您的特定情况的Andrew Hare的方法。
这个问题问了几年了,但我遇到了麻烦。我找到了答案,是(在MVC):
文本在您的ActionLink:... ActionLink的( “TextLine1” + Environment.Newline + “TextLine2”,...
在ActionLink的,有类指向这一行的CSS:
空白:前;
就这样我已经看到了答案,他们把整个Actionline在<预> </pre>标记,但造成更多问题比它解决了。
你可能需要包装这在@ Html.Raw这些天。 – 2013-01-28 19:52:06