gpt4 book ai didi

javascript - 到达方法主体时传递给 WebApi 方法的参数为 null

转载 作者:行者123 更新时间:2023-12-02 14:40:52 24 4
gpt4 key购买 nike

我正在建立一个简单的 MVC 项目,因为我想将我的知识扩展到我通常做此类项目的 Umbraco 范围之外。

我熟悉 WebApi,但似乎无法让它在这种情况下工作。

我认为有一个日期选择器,它是使用以下 Javascript 初始化的:

$('#id-tour_0').datepicker({
changeMonth: true,
changeYear: true,
showOn: "button",
buttonImage: "Content/themes/base/images/icon_calendar.gif",
buttonImageOnly: true,
onSelect: function (date) {
$.ajax({
url: '/api/tour/requesttours',
type: 'POST',
data: JSON.stringify(date),
dataType: 'json',
success: function (data){
console.log(data);
}
});
}
});

然后,在日期选择器中进行选择后,将发布到以下 WebApi 方法:

public class TourController : ApiController
{
[System.Web.Http.AcceptVerbs("GET", "POST")]
public string RequestTours([FromBody] String request)
{
return request;
}
}

我的 WebApiConfig.cs 设置如下:

public static void Register(HttpConfiguration config)
{
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{action}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}

但是,当我在 WebApi 方法上断点时,我可以看到该请求为空。这是为什么?我怎样才能让它接收我的 Javascript 发布的值?

注意我已在 Firebug 中进行了检查,并且正确的日期已正确发布到该方法

enter image description here

最佳答案

后置参数名称应映射到类文件中函数参数的名称

所以创建一个像这样的对象

var dateX = new Object();
dateX.request = date.Date;

然后在你的ajax调用中发送这个对象

data: JSON.stringify(dateX),

或者像这样直接传递对象

data: '{request:"'+ date.Date +'"}'

关于javascript - 到达方法主体时传递给 WebApi 方法的参数为 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37028663/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com