【发布时间】:2016-08-29 22:43:09
【问题描述】:
我正在建立一个简单的 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 方法时,我可以看到该请求以 null 的形式出现。为什么会这样?如何让它接收我的 Javascript 发布的值?
注意我已经在 Firebug 中进行了检查,并且正确的日期已正确发布到方法中
【问题讨论】:
-
你如何设置你的数据值它几乎是空的,你发送它的地方你必须用参数名称指定,如果有数据:'{request:"'+ date.Date +'"}'
标签: javascript c# asp.net-mvc-4 asp.net-web-api