在Html.ActionLink文本中显示类似&reg或&copy的HTML代码。

6 浏览
0 Comments

在Html.ActionLink文本中显示类似&reg或&copy的HTML代码。

很遗憾,我在这个主题的研究上没有取得成功。\n使用锚标签,我能够做到这一点:\n

 My Link ® 

\n现在我想用Html.Actionlink实现相同的效果:\n

@Html.ActionLink("My Link ®", "Action")

\n但输出结果与输入相同,没有显示预期的注册符号。\n有什么想法吗?\n提前感谢!

0
0 Comments

问题的原因是Html.ActionLink方法不接受HtmlString类型作为输入类型,而只接受字符串类型作为输入。因此,不能直接在Html.ActionLink中显示类似于®或©的HTML代码。

解决方法是创建一个重载的扩展方法,该方法接受HtmlString类型的参数,并在方法内部将其转换为字符串类型。下面是一个示例代码:

public static class HtmlExtensions
{
    public static MvcHtmlString ActionLink(this HtmlHelper htmlHelper, HtmlString linkText, string actionName)
    {
        return htmlHelper.ActionLink(linkText.ToString(), actionName);
    }
}

在这个示例中,我们创建了一个名为ActionLink的扩展方法,接受HtmlString类型的linkText参数和字符串类型的actionName参数。在方法内部,我们将linkText转换为字符串,并调用原始的ActionLink方法。

通过使用这个自定义的扩展方法,我们可以在Html.ActionLink中显示类似于®或©的HTML代码,如下所示:

@Html.ActionLink(new HtmlString("My Link ®"), "Action")

上述代码中,我们使用了HtmlString类型的linkText参数,并将其作为参数传递给自定义的ActionLink扩展方法。

这样,我们就可以在Html.ActionLink中正确地显示类似于®或©的HTML代码。通过使用HtmlString类型和自定义的扩展方法,我们可以避免HTML代码被重新编码。

0
0 Comments

问题:在Html.ActionLink文本中显示类似®或©的HTML代码。

原因:ActionLink始终使用HttpUtility.Encode来对链接文本进行编码,导致HTML代码被转义。

解决方法:可以使用UrlHelper方法来手动创建链接,并在其中包含HTML代码。

示例代码如下:

My Link ®

上述代码中,通过使用UrlHelper的Action方法获取链接的URL,并手动创建HTML链接。在链接文本中直接包含所需的HTML代码,如`®`表示注册商标符号,`©`表示版权符号。这样就可以在链接文本中正确显示HTML代码,而不会被转义。

0
0 Comments

在HTML中,特殊字符(如或)需要以特殊的方式呈现,否则它们将被视为HTML代码的一部分。当我们尝试在Html.ActionLink文本中显示这些特殊字符时,可能会遇到问题。

问题的原因是Html.ActionLink方法或HTML标记中的特殊字符没有被正确地转义或编码。这导致特殊字符在HTML中直接显示,而不是以正确的形式显示。

为了解决这个问题,我们可以使用HTML实体编码来表示特殊字符。HTML实体编码使用特殊的实体名称或实体编号来表示特殊字符。对于和,我们可以使用实体名称®和©来表示。

下面是解决方法的示例代码:

使用实体名称:

.ActionLink("My Link ®", "Action")

使用实体编号:

<a href=".Action("Action")"> My Link ® </a>

通过使用HTML实体编码,我们可以确保特殊字符以正确的方式显示在HTML中。这样,无论浏览器或文本编辑器是否支持特殊字符,都可以正确地显示它们。

总之,要在Html.ActionLink文本中显示像或这样的HTML实体字符,我们需要使用实体名称或实体编号来表示它们。这样可以确保特殊字符以正确的方式显示在HTML中。

0