js调用webapi如何传递日期类型参数
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js调用webapi如何传递日期类型参数相关的知识,希望对你有一定的参考价值。
c#的DateTime类型
已有最佳解决方法:转换为unix时间戳
此问题终结
先把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如何传递日期类型参数的主要内容,如果未能解决你的问题,请参考以下文章