ModelBinding 中的字符不正确
-
19-09-2019 - |
题
我有一个问题,我正在开发一个 ASP.NET MVC 项目。网站为土耳其语。当我将此网站发布到 IIS 时,土耳其语字符在网页中变得疯狂,因此我在 web.config 中将全球化设置为
<globalization fileEncoding="iso-8859-9" requestEncoding="iso-8859-9" responseEncoding="iso-8859-9"/>
此后土耳其语字符显示正确。
但现在我遇到了另一个问题,当我在输入文本中输入土耳其语文本,然后发布到我的控制器操作时,土耳其语字符再次变得疯狂。
我跟踪了http消息土耳其文本帖子正确:如果我输入“Yücel”(ü 是土耳其语字符)进行输入,我查看 HttpAnalyzer,可以看到发布数据是“Yücel”。当我查看 MVC 自动绑定的操作参数属性时,我看到“Yücel”。
您有什么建议来解决这个问题吗?
解决方案
我解决了问题,我所做的是,
从中删除以下元素
web.config
所以将使用默认编码(UTF-8)<globalization requestEncoding="utf-8" responseEncoding="utf-8"/>
从我的 Site.Master 中删除以下内容
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-9"/>
其他提示
在web.config中requestEncoding值;
<globalization requestEncoding="utf-8" ...
必须是相同网页的charset值;
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
但你也可以通过网页地址在web.config中的位置标签设置设置做其他请求enconding过程。 样品:
<configuration>
...
<location path="path/to/your/actionmethod">
<system.web>
<globalization requestEncoding="ISO-8859-9" responseEncoding="ISO-8859-9" />
</system.web>
</location>
...
</configuration>
HTTP: //www.siimviikman.com/2012/06/12/action-based-request-encoding-in-asp-net-mvc/
不隶属于 StackOverflow