js调用webapi如何传递日期类型参数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js调用webapi如何传递日期类型参数相关的知识,希望对你有一定的参考价值。

c#的DateTime类型
已有最佳解决方法:转换为unix时间戳
此问题终结

js调用webapi如何传递日期类型参数
先把jsp里面的日期格式化成字符串,然后传给js当作参数传到Date就可以了。
1、格式化jsp的时间:
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.util.*"%>
<%@ page import="java.text.*"%>
<html>
<body>
现在的时间:
<%SimpleDateFormat s = new SimpleDateFormat("yyyyMMddHHmmss");
Date date = new Date();
%>
<%=s.format(date)%>
</body>
</html>
2、传值给js
var dt1="<%=s.format(date)%>";
var oDate1 = new Date(dt1);
这样就可以把字符串的日期转换成js的date类型了。
参考技术A js和Date类啊,new一个不就好了

WebApi通过后端调用传递基础类型的参数

WebApi传递实体类型的参数,可以直接将实体序列化,然后写入请求流即可。
传递基础类型的参数却不这么方便。以下是自己踩过的坑,分享出来给大家。调用的方式是通过后端,前端的没有总结。
WebApi后端代码:

public class UsersController : ApiController
    {
        private List<Users> _userList = new List<Users>() {
            new Users{ UserID=1, UserName="冯宝宝", UserEmail="[email protected]"},
            new Users{ UserID=2, UserName="王也", UserEmail="[email protected]"}
        };

        [HttpPost]
        public IEnumerable<Users> WithStringParam([FromBody]string name)
        {
            return _userList;
        }
        [HttpPost]
        public IEnumerable<Users> WithIntParam([FromBody]int id)
        {
            return _userList;
        }
        [HttpPost]
        public IEnumerable<Users> Post(Users user)
        {
            return _userList;
        }
        [HttpGet]
        public IEnumerable<Users> YieldGet()
        {
            foreach (var item in _userList)
            {
                yield return item;
            }
        }
    }

    public class Users
    {
        public int UserID { get; set; }
        public string UserName { get; set; }
        public string UserEmail { get; set; }
    }
}

后端调用的代码:

{
                //dynamic val = new { UserID = "1", UserName = "冯宝宝", UserEmail = "[email protected]" };
                //HttpWebRequest httpWebRequest = HttpWebRequest.Create("http://localhost:51151/Api/Users/WithStringParam") as HttpWebRequest;
                HttpWebRequest httpWebRequest = HttpWebRequest.Create("http://localhost:51151/Api/Users/WithIntParam") as HttpWebRequest;
                httpWebRequest.Method = "POST";
                httpWebRequest.ContentType = "application/json";

                {
                    //string strJson = JsonConvert.SerializeObject(val);
                    //byte[] data = Encoding.UTF8.GetBytes(strJson);

                    //dynamic strVal = new { name = "aaa" };
                    //string strJson = JsonConvert.SerializeObject(strVal);
                }
                //byte[] data = Encoding.UTF8.GetBytes($""冯宝宝"");//string参数
                byte[] data = Encoding.UTF8.GetBytes($"12");//int参数

                Stream requestStream = httpWebRequest.GetRequestStream();
                requestStream.Write(data, 0, data.Length);
                requestStream.Close();

                try
                {
                    using (var res = httpWebRequest.GetResponse() as HttpWebResponse)
                    {
                        if (res.StatusCode == HttpStatusCode.OK)
                        {
                            StreamReader streamReader = new StreamReader(res.GetResponseStream(), Encoding.UTF8);
                            string result = streamReader.ReadToEnd();
                        }
                    }
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex);
                }
            }

以上是关于js调用webapi如何传递日期类型参数的主要内容,如果未能解决你的问题,请参考以下文章

使用日期参数时的“数据类型不匹配”

JS之Date类型

如何在 Ember.js 中保存具有“日期”类型属性的模型?

如何将日期值传递给 plsql 中的游标?

mysql语句如何传递日期参数 - 技术问答

如何设置默认日期参数以传递给 JavaScript 中的 ajax get 调用,在选择日期值时它应该更改