【问题标题】:ASP.NET MVC3 razor problem with international characters in custom html helpers自定义 html 帮助程序中的国际字符的 ASP.NET MVC3 剃刀问题
【发布时间】:2010-11-15 21:03:18
【问题描述】:

我目前正在尝试将 ASP.NET MVC2 应用程序转换为 ASP.NET MVC3 剃须刀。我有很多自定义的 Html 辅助方法,它们呈现 html 输出,如下所示,它呈现一个带有一些标记的按钮:

StringBuilder sb = new StringBuilder("<input type='submit' id='")
            .Append(buttonId)
            .Append("' name='" )
            .Append(buttonId)
            .Append("' value='")
            .Append(buttonValue)
            .AppendLine("' class='myclass1 myclass2' />");
return MvcHtmlString.Create(sb.ToString());

当 buttonValue 包含 é 或 ë 等国际字符时,按钮的文本会呈现错误,我猜会发生某种编码...

例如。 ë 更改为 ë

我知道,MVC3 对其 html 帮助程序使用某种模板系统,但由于我有很多自己的帮助程序,因此需要很长时间才能了解这一点并更改我当前的所有自定义帮助程序。

【问题讨论】:

  • 显然,默认的 MVC3 Html 助手遇到同样的问题:@Html.TextBox("test","Kopiëren") 也会输出错误的结果。

标签: asp.net-mvc-3


【解决方案1】:

问题解决了,显然它与 cshtml 文件的编码有关,这些文件是由一个小型 c# 程序生成的,该程序试图将 webform 语法转换为 razor 语法。在编写生成的 cshtml 文件时,如果忘记指定编码参数,导致 cshtml 文件与原始 aspx 或 ascx 文件的编码不同。我通过改变解决了它

File.WriteAllText(filename,text) 

File.WriteAllText(filename, text,Encoding.Default)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-11-14
    • 1970-01-01
    • 2013-07-13
    • 1970-01-01
    • 2018-05-19
    • 1970-01-01
    • 2020-01-22
    相关资源
    最近更新 更多