Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将JSON datetime读入C#-datetime时出错_C#_Asp.net Mvc - Fatal编程技术网

将JSON datetime读入C#-datetime时出错

将JSON datetime读入C#-datetime时出错,c#,asp.net-mvc,C#,Asp.net Mvc,注意*我知道第二个方法有不同的名称,但“getCommissionByStatusID”方法只是将其传递给“getExportAudition”,而不做任何操作 当从MVC应用程序传递服务时,我在.Net C#类中得到不同的日期时间。我以前搜索过,但我不熟悉JSON,所以不太确定我需要看什么 下面是调用该服务的MVC代码。“委托搜索”对象导致问题。所以这里它被序列化了 public IEnumerable<ConsignmentInfo> LoadConsignmentByStatu

注意*我知道第二个方法有不同的名称,但“getCommissionByStatusID”方法只是将其传递给“getExportAudition”,而不做任何操作

当从MVC应用程序传递服务时,我在.Net C#类中得到不同的日期时间。我以前搜索过,但我不熟悉JSON,所以不太确定我需要看什么

下面是调用该服务的MVC代码。“委托搜索”对象导致问题。所以这里它被序列化了

public IEnumerable<ConsignmentInfo> LoadConsignmentByStatusId(int userId, int companyId, string language, int statusId, int pageNumber, int pageSize, ConsignmentSearch search)
    {
        IEnumerable<ConsignmentInfo> consignmentInfo = null;
        var serializer = new JavaScriptSerializer();
        string jsonInput = serializer.Serialize(search);
        var content = new StringContent(jsonInput, Encoding.UTF8, "application/json");

        HttpResponseMessage response = Client.PostAsync(
            string.Format("Consignment/GetConsignmentByStatusId?userId={0}&companyId={1}&language={2}&pageNumber={3}&numRecs={4}&statusId={5}", userId, companyId, language, pageNumber, pageSize, statusId)
            , content).Result;

        if (response.IsSuccessStatusCode)
        {
            consignmentInfo = response.Content.ReadAsAsync<IEnumerable<ConsignmentInfo>>().Result;
        }
        else
        {
            throw new Exception(response.ReasonPhrase);
        }
        return consignmentInfo;
    }
public IEnumerable LoadCommitmentByStatusID(int用户ID、int公司ID、字符串语言、int状态ID、int页码、int页面大小、委托搜索)
{
IEnumerable委托信息=null;
var serializer=新的JavaScriptSerializer();
字符串jsonInput=serializer.Serialize(搜索);
var content=newstringcontent(jsonInput,Encoding.UTF8,“application/json”);
HttpResponseMessage响应=Client.PostAsync(
string.Format(“寄售/GetCommissionByStatusID?用户ID={0}&companyId={1}&language={2}&pageNumber={3}&numRecs={4}&statusId={5}”,用户ID,公司ID,语言,页码,页面大小,statusId)
结果;
if(响应。IsSuccessStatusCode)
{
委托信息=response.Content.ReadAsAsync().Result;
}
其他的
{
抛出新异常(response.ReasonPhrase);
}
退货寄售信息;
}
这是服务中代码的一部分。此对象中有2个日期时间字段 这与传递的东西总是不同的。我需要做什么来读取正确的日期?任何帮助或链接将不胜感激

public static IEnumerable<ConsignmentInfo> GetExportConsignment(int userId, int companyId, string locale, ConsignmentSearch search, int pageNumber, int numRecs, int statusId)
    {

        var consignmentStatusList = new List<ConsignmentInfo>();
        SQLDataAccess db = DatabaseFactory.CreateDatabase(GlobalsManager.DbConnectionString) as SQLDataAccess;
        DbCommand cmd = db.GetStoredProcCommand("Logistics.spGTSConnectGetExportConsignment");

        db.AddInParameter(cmd, "UserId", DbType.Int32, userId);
        db.AddInParameter(cmd, "CompanyId", DbType.Int32, companyId);
        db.AddInParameter(cmd, "Locale", DbType.String, locale);
        if (!string.IsNullOrEmpty(search.ConsignmentNumber))
        {
            db.AddInParameter(cmd, "ConsignmentNumber", DbType.String, search.ConsignmentNumber);
        }
        if (!string.IsNullOrEmpty(search.HouseWaybillNumber))
        {
            db.AddInParameter(cmd, "HouseBillNumber", DbType.String, search.HouseWaybillNumber);
        }
        if (search.DateOfLoadingFrom != null)
        {
            db.AddInParameter(cmd, "DateOfLoadingFrom", DbType.DateTime, search.DateOfLoadingFrom);
        }
public static IEnumerable getExportBatching(int userId、int companyId、字符串区域设置、委托搜索、int pageNumber、int numRecs、int statusId)
{
var委托状态列表=新列表();
SQLDataAccess db=DatabaseFactory.CreateDatabase(GlobalsManager.DbConnectionString)作为SQLDataAccess;
DbCommand cmd=db.GetStoredProcCommand(“Logistics.spgtsconnectgetexport寄售”);
db.AddInParameter(cmd,“UserId”,DbType.Int32,UserId);
db.AddInParameter(cmd,“CompanyId”,DbType.Int32,CompanyId);
AddInParameter(cmd,“Locale”,DbType.String,Locale);
如果(!string.IsNullOrEmpty(search.CommissionNumber))
{
db.AddInParameter(cmd,“委托编号”,DbType.String,search.委托编号);
}
如果(!string.IsNullOrEmpty(search.housayBillNumber))
{
AddInParameter(cmd,“HouseBillNumber”,DbType.String,search.HouseBillNumber);
}
if(search.DateOfLoadingFrom!=null)
{
db.AddInParameter(cmd,“DateOfLoadingFrom”,DbType.DateTime,search.DateOfLoadingFrom);
}

如果您使用JS向服务请求/发送数据,可以使用以下脚本在JSON上确定日期:

function convertJsonDate(dateString) {
    var date = new Date(dateString.match(/\d+/)[0] * 1);
    var dd = date.getDate()
    if (dd < 10) dd = '0' + dd
    var mm = date.getMonth() + 1  // now moths are 1-12
    if (mm < 10) mm = '0' + mm
    var yy = date.getFullYear()
    if (yy < 100) yy = '20' + yy

    return mm + '/' + dd + '/' + yy;
}
函数convertJsonDate(日期字符串){
变量日期=新日期(dateString.match(/\d+/)[0]*1);
var dd=date.getDate()
如果(dd<10)dd='0'+dd
var mm=date.getMonth()+1//现在蛾类为1-12
如果(毫米<10)毫米='0'毫米+毫米
var yy=date.getFullYear()
如果(yy<100)yy='20'+yy
返回mm+'/'+dd+'/'+yy;
}

我找到了一个解决方案,就在这里

我添加了以下方法

 JsonSerializerSettings microsoftDateFormatSettings = new JsonSerializerSettings
        {
            DateFormatHandling = DateFormatHandling.MicrosoftDateFormat
        };
然后将LoadCommitmentByStatusID方法更改为

 public IEnumerable<ConsignmentInfo> LoadConsignmentByStatusId(int userId, int companyId, string language, int statusId, int pageNumber, int pageSize, ConsignmentSearch search)
        {
            IEnumerable<ConsignmentInfo> consignmentInfo = null;
            var content = new StringContent(JsonConvert.SerializeObject(search, microsoftDateFormatSettings), Encoding.UTF8, "application/json");
public IEnumerable LoadCommitmentByStatusID(int用户ID、int公司ID、字符串语言、int状态ID、int页码、int页面大小、委托搜索)
{
IEnumerable委托信息=null;
var content=new-StringContent(JsonConvert.SerializeObject(搜索,microsoftDateFormatSettings),Encoding.UTF8,“application/json”);

JSON中的值如何以及它们在服务参数中如何?这是两个日期(2014年1月1日至1月10日)l的JSON,“DateOfLadingFrom\:\”\“\/(1388527200)\/”,“DateOfLadingTo\”:\“\/(138930480000)\/”,这是起始日期-{2013/12/31 10:00:00 PM{2014/01/09 10:00:00 PM}。您找到解决方案了吗?