Asp.net mvc 2 MVC2自定义HTML帮助程序和<;%:%&燃气轮机;语法

Asp.net mvc 2 MVC2自定义HTML帮助程序和<;%:%&燃气轮机;语法,asp.net-mvc-2,html-helper,Asp.net Mvc 2,Html Helper,有没有任何方法可以将自定义html助手与语法一起使用 我知道,如果我使用下面的代码,它是好的,但它似乎不是那么优雅和安全 <%= Html.MyHelper("Some Data")%> 我的意思是,使用是最佳实践?HTML帮助程序创建HTML,通常希望通过原始输出。如果您使用对HTML助手的输出进行HTML转义,您将看到它在页面上生成的HTML源代码作为文本(例如屏幕上的),这可能不是您想要的 为了安全起见,帮助者可以对其中的任何文本内容进行HTML转义。是的,如果您编写了一

有没有任何方法可以将自定义html助手与语法一起使用

我知道,如果我使用下面的代码,它是好的,但它似乎不是那么优雅和安全

<%= Html.MyHelper("Some Data")%>


我的意思是,使用是最佳实践?

HTML帮助程序创建HTML,通常希望通过
原始输出。如果您使用
对HTML助手的输出进行HTML转义,您将看到它在页面上生成的HTML源代码作为文本(例如屏幕上的
),这可能不是您想要的

为了安全起见,帮助者可以对其中的任何文本内容进行HTML转义。是的,如果您编写了一个自定义HTML帮助程序,但错误地忘记了对字符串进行HTML编码,您的帮助程序将文本内容或属性值放入输出中,那么您将有安全漏洞。您需要知道如何使用转义来编写HTML帮助程序

不幸的是,微软显然没有这样做,因为他们的第一个例子完全失败了:

return String.Format("<label for='{0}'>{1}</label>", target, text);
返回String.Format(“{1}”,目标,文本);
哎呀。希望那些ID和文本字符串不是来自不可信的数据


[为什么web教程在逃避问题方面总是如此糟糕?]

让助手返回
MvcHtmlString
,而不是字符串。另外,请使用