ASP.net MVC自定义字符串输出重载运算符<%= h

Jar*_*red 0 asp.net-mvc html-encode

我目前正在制作一个新的ASP.net MVC网站,并发现自己在各地使用Html.Encode,这是一个很好的做法,但变得非常混乱.我认为清理它的一个好方法是,如果我可以重载一个运算符来自动执行Html编码.

先前:

<%= Html.Encode( ViewData['username'] ) %>
Run Code Online (Sandbox Code Playgroud)

相当于:

<%=h ViewData['username'] %>
Run Code Online (Sandbox Code Playgroud)

任何人有任何想法我怎么能这样做,可能使用扩展方法或什么?

Wya*_*att 7

它不像运算符重载那么干净,但我使用了以下扩展方法:

public static string Safe(this string sz)
{
    return HttpUtility.HtmlEncode(sz);
}
Run Code Online (Sandbox Code Playgroud)

所以在我的aspx id中:

<%= this.ViewData["username"].Safe() %>
Run Code Online (Sandbox Code Playgroud)

将额外的方法添加到表达式的末尾对我来说比通过函数发送值更漂亮.