我有一个名为ProcessoCliente的类,这个类是一个模型视图,我用它在IgniteUI igGrid上显示一些值。
这是班级:
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Web;
using LicenciamentoMVC.Models;
namespace LicenciamentoMVC.ModelsView
{
public class ProcessoCliente
{
public int IDProcesso { get; set; }
public string NomeCliente { get; set; }
public DateTime DataInserido { get; set; }
public int Estado { get; set; }
}
public class ProcessoModel
{
private static ProcessoCliente entity;
public static IQueryable<ProcessoCliente> GetListaProcessosClientes()
{
MvcApplication1Context db = new MvcApplication1Context();
var processos = (from p in db.Processos
join c in db.Clientes on p.IDCliente equals c.IDCliente
orderby p.IDProcesso descending
select new ProcessoCliente { IDProcesso = p.IDProcesso, NomeCliente = c.Nome, DataInserido = p.DataInserido , Estado=p.Estado});
return processos.AsQueryable<ProcessoCliente>();
}
}
}
问题是它返回的日期时间字段为/日期(1391600738810)/,并显示为此。 如何通过linq查询转换为日期时间值为yyyy-MM-dd HH:mm:ss..2014-02-05 12:00:00? 任何人都可以告诉我为什么会发生这种情况,这是什么类型.. 根据sql server,存储的数据格式为yyyy-MM-dd HH:mm:ss ..
这是视图中网格的代码:
@( Html.Infragistics().Grid<LicenciamentoMVC.ModelsView.ProcessoCliente>()
.Caption("Processos")
.ID("grid1")
.DefaultColumnWidth("200px")
.PrimaryKey("IDProcesso")
.Columns(column =>
{
column.For(x =>x.NomeCliente).DataType("string").HeaderText("Nome do Cliente").Width("50%");
column.For(x => x.DataInserido).DataType("DateTime").HeaderText("Data de Criação do Processo").Width("25%");
column.For(x => x.NomeCliente).DataType("int").HeaderText("Estado").Width("25%");
column.For(x => x.IDProcesso).DataType("int").Width("0%");
})
.Features(features =>
{
features.Paging().PageSize(20).PrevPageLabelText("Previous").NextPageLabelText("NEXT");
features.Sorting().Mode(SortingMode.Single).ColumnSettings(settings =>
{
settings.ColumnSetting().ColumnKey("NomeCliente").AllowSorting(true);
});
features.Selection().MultipleSelection(false).Mode(SelectionMode.Row);
features.Filtering().Mode(FilterMode.Simple);
features.Updating()
.EnableAddRow(false)
.EnableDeleteRow(true)
.EditMode(GridEditMode.None);
})
.DataSourceUrl(Url.Action("ListarProcessos"))
.UpdateUrl(Url.Action("DeleteProcessos"))
.AutofitLastColumn(false)
.Width("100%")
.AutoGenerateColumns(false)
.DataBind()
.Render()
)
以下是控制器操作的代码:
[GridDataSourceAction]
public ActionResult ListarProcessos()
{
return View(LicenciamentoMVC.ModelsView.ProcessoModel.GetListaProcessosClientes());
}
答案 0 :(得分:1)
像你这样改变你的课程
public string DataInseridoString {
get
{
if(this.DataInserido!=null)
retrun this.DataInserido.ToString("yyyy-MM-dd HH':'mm':'ss");
else
return string.Empty;
}
}
并将此属性绑定到您的前端
linq没有任何意义我觉得你需要通过使用tostring和forate string来约会你的日期
theDate.ToString("yyyy-MM-dd HH':'mm':'ss")
答案 1 :(得分:0)
您是否通过某处的JSON Web服务收到了日期?如果你自己解析JSON(出于某种原因),你将得到你得到的那种字符串。因此,要解决这个问题,要么正确使用Web服务(.NET可以自行处理反序列化),要么必须解析它的日期。
这意味着 - 获取内部的数值。然后,使用此代码段:
new DateTime(1970, 1, 1).AddMilliseconds(extractedValue);
你应该得到正确的DateTime :)
答案 2 :(得分:0)
所以,经过一番搜索,我找到了解决方案...... 这就是我做的方式.. 所需的更改是在模型上进行的:
using System.Linq;
using System.Web;
using LicenciamentoMVC.Models;
namespace LicenciamentoMVC.ModelsView
{
public class ProcessoCliente
{
public int IDProcesso { get; set; }
public string NomeCliente { get; set; }
public string DataInserido { get; set; }
public int Estado { get; set; }
}
public class ProcessoModel
{
private static ProcessoCliente entity;
public static IQueryable<ProcessoCliente> GetListaProcessosClientes()
{
MvcApplication1Context db = new MvcApplication1Context();
var processos = (from p in db.Processos
join c in db.Clientes on p.IDCliente equals c.IDCliente
orderby p.IDProcesso descending
select new { IDProcesso = p.IDProcesso, NomeCliente = c.Nome, DataInserido = p.DataInserido, Estado = p.Estado }).ToList().Select(c => new ProcessoCliente
{
IDProcesso = c.IDProcesso,
NomeCliente = c.NomeCliente,
DataInserido = c.DataInserido.ToString(),
Estado=c.Estado
});
return processos.AsQueryable<ProcessoCliente>();
}
}
}
谢谢大家