When转换为ASP.ValueProvider的NET值
本文关键字:NET ValueProvider ASP 转换 When | 更新日期: 2023-09-27 18:16:59
我的项目使用ASP。净MVC。
我正在通过ajax发送一些数据到一个控制器动作,看起来像
{ "data" : { "DATE" : "'/Date(1409097600000)'/", "NAME" : "thomas } }
我使用控制器的ValueProvider来处理数据:
var provider = ControllerContext.Controller.ValueProvider;
var value = provider.GetValue("data.DATE");
// value is now already "27.08.2014 00:00:00"
为什么?
这部分转换在哪里发生?
类似的问题:-
以上数据为内容类型"application/json; charset=utf=8"
数据为"application/x-www-form-urlencoded; charset=utf=8"
ASP。. NET无法转换日期值。
_model.DATE=%5C%2FDate(1409097600000)%5C%2F&_model.NAME=thomas
我想我在。net日期格式中对'
和/
做了一些错误的事情:'/Date(1409097600000)'/
(我知道netwonsoft。Json可能是javascript序列化的另一种选择,但不幸的是,目前还没有)
如果您使用Ajax post向服务器发送JSON数据,那么content-type头应该反映这一事实(content-type ="application/JSON;Charset =utf=8"),以便服务器正确地解释数据。
- type = "应用程序/x-www-form-urlencoded;charset=utf=8",用于通过HTML表单提交数据。如果您提交带有此内容类型标头的JSON数据,浏览器将对其进行url编码并生成您所演示的字符串:
_model.DATE=%5C%2FDate(1409097600000)%5C%2F&_model.NAME=thomas
Date()函数在HTTP表单post中没有意义(它是一个JSON函数),这就是日期转换失败的原因。