我已经做了好几天了。这应该很简单。为什么不管用?我的URL看起来像这样:
https://example.com/photos/gallery/c15905d7-8216-4e81-ac15-2fafd10b49e8
/ 80515cad-070a-4d61-a7e3-f2dbb1968c9d
我想发送c15905d7-8216-4e81-ac15-2fafd10b49e8
和80515cad-070a-4d61-a7e3-f2dbb1968c9d
到我的控制器。
以下是我尝试过的最后一件事(共20748次尝试):
function setViewed() {
var pathArray = window.location.pathname.split('/');
$.ajax({
type: "PUT",
url: '/api/Customers/',
data: { 'pathArray': pathArray },
dataType: "json",
traditional: true,
success: function (response) {
alert(response.msg);
}
});
}
控制器:
[HttpPut]
public IHttpActionResult SeenIt(List<String> pathArray)
{
// Don't update if it's the client looking at a customer's gallery:
if (pathArray[3] == User.Identity.GetUserId()){
return Json(new
{
msg = String.Format("ClientID: {0} | CustomerID: {1}", pathArray[3], pathArray[4])
});
}
var customer = db.Customers.FirstOrDefault(c => c.CustomerID == Guid.Parse(pathArray[4]));
customer.Accessed = true;
db.SaveChanges();
return Json(new
{
msg = String.Format("ClientID: {0} | CustomerID: {1}", pathArray[3], pathArray[4])
});
}
我的数组总是null。有没有更好/更简单/更有效的方法来做到这一点?一个有用的?谢谢!
2条答案
按热度按时间xe55xuns1#
选项1
AJAX 调用中,不需要用
{}
Package 列表字符串。简单使用;选项二
创建一个类,作为绑定属性的模型。
然后在你的控制器里
gr8qqesn2#
我知道这是一篇老文章,但是对于任何 AJAX 来发布与直接JS相比的人来说,我发现添加这个很有帮助:内容类型:“application/json;字符集=utf-8”,