解决MVC 时间序列化的方法

1.全局处理

处理代码

 1  publict static void SetSerializationJsonFormat(HttpConfiguration config)
 2         {
 3             // Web API configuration and services
 4             var json = config.Formatters.JsonFormatter;
 5             ////(时间格式只支持2种)json.SerializerSettings.DateFormatHandling = Newtonsoft.Json.DateFormatHandling.MicrosoftDateFormat;
 6             ////时间格式("自定义格式")
 7             json.SerializerSettings.Converters.Add(new IsoDateTimeConverter { DateTimeFormat = "yyyy-MM-dd HH:mm:ss" });
 8             ////移除json序列化器
 9             ////config.Formatters.Remove(config.Formatters.JsonFormatter);
10         }

在Application_Start调用SetSerializationJsonFormat(GlobalConfiguration.Configuration)全局设置

2.重写ActionResult

 1     public class JsonResult : ActionResult
 2     {
 3         public JsonResult()
 4         {
 5             this.ContentEncoding = Encoding.UTF8;
 6             this.ContentType = "application/json";
 7         }
 8
 9         public override void ExecuteResult(ControllerContext context)
10         {
11             if (context == null)
12             {
13                 throw new ArgumentNullException("context");
14             }
15
16             HttpResponseBase response = context.HttpContext.Response;
17             if (!string.IsNullOrEmpty(this.ContentType))
18             {
19                 response.ContentType = this.ContentType;
20             }
21             if (this.ContentEncoding != null)
22             {
23                 response.ContentEncoding = this.ContentEncoding;
24             }
25             if (this.Data != null)
26             {
27                 response.Write(NewtonsoftSerialize(this.Data));
28                 response.End();
29             }
30         }
31
32         public Encoding ContentEncoding { get; set; }
33
34         public string ContentType { get; set; }
35
36         public object Data { get; set; }
37
38         private static string NewtonsoftSerialize(object value)
39         {
40             try
41             {
42                 IsoDateTimeConverter timeFormat = new IsoDateTimeConverter { DateTimeFormat = "yyyy-MM-dd HH:mm:ss" };
43                 return JsonConvert.SerializeObject(value, timeFormat);
44             }
45             catch
46             {
47                 return string.Empty;
48             }
49         }
50     }
时间: 2024-11-08 23:05:40

解决MVC 时间序列化的方法的相关文章

解决MVC Json序列化的循环引用问题/EF Json序列化循引用问题---Newtonsoft.Json

1..Net开源Json序列化工具Newtonsoft.Json中提供了解决序列化的循环引用问题: 方式1:指定Json序列化配置为 ReferenceLoopHandling.Ignore 方式2:指定 JsonIgnore忽略 引用对象 实例1,解决MVC的Json序列化引用方法: step1:在项目上添加引用 Newtonsoft.Json程序包,命令:Insert-Package Newtonsoft.Json step2:在项目中添加一个类,继承JsonResult,代码如下: ///

ASP.NET MVC 5 - 验证编辑方法(Edit method)和编辑视图(Edit view)

原文:ASP.NET MVC 5 - 验证编辑方法(Edit method)和编辑视图(Edit view) 在本节中,您将验证电影控制器生成的编辑方法(Edit action methods)和视图.但是首先将修改点代码,使得发布日期属性(ReleaseDate)看上去更好.打开Models \ Movie.cs文件,并添加高亮行如下所示: using System; using System.ComponentModel.DataAnnotations; using System.Data.

[转]ASP.NET MVC 5 - 验证编辑方法(Edit method)和编辑视图(Edit view)

在本节中,您将验证电影控制器生成的编辑方法(Edit action methods)和视图.但是首先将修改点代码,使得发布日期属性(ReleaseDate)看上去更好.打开Models \ Movie.cs文件,并添加高亮行如下所示: using System; using System.ComponentModel.DataAnnotations; using System.Data.Entity; namespace MvcMovie.Models { public class Movie

解决MVC中JSON字符长度超出限制的异常

解决MVC中JSON字符长度超出限制的异常 解决方法如下: http://stackoverflow.com/questions/4155014/json-asp-net-mvc-maxjsonlength-exception 解决MVC中JSON字符长度超出限制的异常,布布扣,bubuko.com

电脑蓝屏怎么解决,解决电脑蓝屏的方法

在更新系统漏洞或者补丁之后,如果出现不兼容或者其他原因都会导致电脑开机蓝屏,那么电脑蓝屏怎么解决?今天小编就来教大家解决电脑蓝屏的方法.具体内容如下: 分析及解决方法: 一.重启电脑.如果只是偶然出现蓝盘,那么我们只需要重启一下电脑即可. 二.利用360安全卫士等优化软件,启动蓝盘修复功能,或者找寻相应的补丁进行修复. 三.病毒导致.程序破坏等原因,都是由于木马.病毒等侵入导致,这时候也会影响到系统的稳定性,那么之后就会出现蓝屏的现象,这样的问题我们要及时清理杀毒即可. 四.硬件问题.电脑长时间

解决MVC EF Code First错误:Model compatibility cannot be checked because the EdmMetadata type was not included in the model.

Model compatibility cannot be checked because the EdmMetadata type was not included in the model. Ensure that IncludeMetadataConvention has been added to the DbModelBuilder conventions. 分析: 碰到此错误是由于使用了EF Code First来生成数据库,生成数据库之后又修改了模型. 两种解决方式: 1.在Glo

MVC验证09-使用MVC的Ajax.BeginForm方法实现异步验证

原文:MVC验证09-使用MVC的Ajax.BeginForm方法实现异步验证 MVC中,关于往后台提交的方法有: 1.Html.BeginForm():同步 2.Ajax.BeginForm():异步 3.js或jQuery提交后台 本文体验Ajax.BeginForm()方法.   View model using System; using System.ComponentModel.DataAnnotations;   namespace XHelent.Models { public

MVC如何避免控制器方法接收到的值不能被转换为参数类型

假设控制器方法参数类型是int: public ActionResult GetSth(int id) { return Content(id.ToString()); } 而视图传递过来的是字符串: @Html.ActionLink("获取","GetSth",new {id="hello"}) 于是就会报类似如下的错: 对于"MvcApplication3.Controllers.HomeController"中方法&qu

MVC+EF 序列化类型为“System.Data.Entity.DynamicProxies.__的对象时检测到循环引用

用MVC+EF做简单查询时,返回json格式数据出现问题 原代码: public ActionResult JSon({ NorthwindEntities db = new NorthwindEntities(); Employees per = db.Employees.Where(u => u.EmployeeID == 1).FirstOrDefault(); return Json(per, JsonRequestBehavior.AllowGet); } 报错: 个人记录最简单而行之