开发者

Ampersand is being HTML Encoded as &. Any way to prevent this?

I have the following block of code that creates an Action Link for a company.

Html.ActionLink(Html.Encode开发者_如何学编程(currentCompany.GetDisplayName()), "CompanyFactsheet", "Company",
                                                       new {friendlyURL = currentCompany.FriendlyURL.ToLower()}, null)%>

Some of the company names contain '&', and this is being rendered as &

Is there a way that I can Html.Encode the company names, but still keep the & symbol as it's supposed to look, rather than &?


It seems like you don't need to encode when using ActionLink helper method. It encodes internally:

How do I bypass the HTML encoding when using Html.ActionLink in Mvc?


Double check the markup that is getting generated. The only way that the & should be showing on the page is if you're double encoding the ampersand character (so the source of the page would be showing &).

This could be caused by either storing the character already HTML encoded or you're using <%: (which HTML encodes everything for you automatically) instead of <%= in your View.


Replace & to some other charachter before saving them, and replace them back AFTER encoding (using jquery most likely)... I know it sounds like overkill, but if you really need the Html.Encode (or <%:, or @ in Razor), this is the best way IMHO....

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜