asp.net-mvc – Web Api调用返回404错误,GUID作为参数传递
发布时间:2020-12-16 03:34:49 所属栏目:asp.Net 来源:网络整理
导读:我的ajax调用让我的web.api方法变得麻烦.如果我从api和js中删除了Guid orderId,则调用将其发送给控制器,但是pizza对象为空.如果我在URL中传递Guid,它也会转到控制器但没有披萨.请解释为什么这不起作用或帮助我使其工作. JS: var savePizza = function (orde
我的ajax调用让我的web.api方法变得麻烦.如果我从api和js中删除了Guid orderId,则调用将其发送给控制器,但是pizza对象为空.如果我在URL中传递Guid,它也会转到控制器但没有披萨.请解释为什么这不起作用或帮助我使其工作.
JS: var savePizza = function (orderId,pizza) { var dataCall = $.ajax(config.savePizzaUrl,{ data: ko.toJSON({ orderId: orderId,pizza: pizza }),type: "post",contentType: "application/json" }); return Q.when(dataCall); }; Web Api: [HttpPost] public RequestReturn<Guid> SavePizza(Guid orderId,Pizza pizza) { return PizzaRequests.SavePizza(orderId,pizza); } JS对象: var pizza = function (data) { this.Id = data.Id; this.Size = new size(data.Size); this.SizeId = data.SizeId; this.Toppings = $.map(data.Toppings,function(item) {return new topping(item);}); }; var topping = function (data) { this.Id = data.Id; this.Name = data.Name; this.Price = data.Price; }; var size = function (data) { this.Id = data.Id; this.Name = data.Name; this.Price = data.Price; }; C#对象: public class Pizza { public Guid Id { get; set; } public Guid SizeId { get; set; } public Size Size { get; set; } public IEnumerable<Topping> Toppings { get; set; } } public class Size { public Guid Id { get; set; } public string Name { get; set; } public double Price { get; set; } } public class Topping { public Guid Id { get; set; } public string Name { get; set; } public double Price { get; set; } } JSON Fiddler Post Capture: 解决方法
默认情况下,ASP.NET Web API将请求主体绑定到复杂类型(在您的情况下为Pizza). Web API将整个主体绑定到一个参数.诸如GUID的简单类型从URI路径和查询字符串绑定.因此,通过在URI中传递GUID并仅发布与披萨对象相对应的JSON(仅披萨而不是订单ID等其他任何东西),您可以使其正常工作.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc – 在2015年的MVC 5 Razor视图中减少VS 2017 I
- asp.net-mvc – 如何在ASP.NET MVC中将复杂的ViewModel传递
- asp.net – 当我按浏览器BACK按钮会发生什么?
- ASP.NET实现的简单易用文件上传类
- asp.net – asp文本框限制字符数?
- azure – WebApi组织帐户 – 用户凭据验证失败
- asp.net-mvc – 如何将MVC 3项目更新为jQuery 1.6?
- F#WebApi Cors不起作用
- asp.net-mvc – 摆脱仅在ASP.NET MVC中返回视图的控制器GET
- asp.net-core – 如何在Asp.net核心服务类中调用View组件?
推荐文章
站长推荐
- ASP.NET MVC“Donut caching”和TempData
- asp.net-mvc – 尝试解密FormsAuthentication票证
- asp.net-mvc-4 – 如何在mvc4中将Json字符串发送
- asp.net – 承载令牌在重新部署后变为无效
- asp.net – 锚标记href中的eval
- asp.net-mvc-2 – 动态生成的模型中的ASP.NET MV
- 使用Asp.Net MVC和Web Api配置Ninject
- ASP.NET MVC 4 JSON绑定到视图模型 – 嵌套对象错
- 从.NET开始 – ASP.NET,WPF,Silverlight或命令行
- 优化 – 字典/客户端VS应用程序变量
热点阅读