我正在使用带有剃刀代码的mvc开发aspnet

时间:2013-04-15 11:40:49

标签: asp.net-mvc razor

我没有得到以下几行的含义。

(a)中 这是来自.cshtml文件的一行。 我使用kendo UI。

@Html.TextBox("textname", null, new { @class = "k-textbox", style = "width:97px;" })

(b)中。 这是来自app_data文件夹。 我没有得到HtmlEncode和HtmlAttributeEncode

之间的区别
public class AntiXssEncoder : HttpEncoder
{
    public AntiXssEncoder() 
    {
    }

    protected override void HtmlEncode(string value, TextWriter output)
    {
        output.Write(AntiXss.HtmlEncode(value));
    }

    protected override void HtmlAttributeEncode(string value, TextWriter output)
    {
        output.Write(AntiXss.HtmlAttributeEncode(value));
    }
    ...
}

1 个答案:

答案 0 :(得分:0)

第一行

@Html.TextBox("textname", null, 
               new { @class = "k-textbox", style = "width:97px;" })

将生成类似

的输出
<input type="text" class="k-textbox" style="width:97px"/>

因此,它是一个帮助程序,允许生成具有一些优点的文本框,例如绑定,如果它们是表单的一部分。您可以在MSD和here

中详细了解它

其他两种方法之间的区别如the MSDN resource

中所述
  

HtmlAttributeEncode方法仅转换 引号(“),   &符号(&amp;)和左尖括号(&lt;)到等效字符   实体。它比HtmlEncode方法快得多。