【发布时间】:2020-02-14 19:24:15
【问题描述】:
我正在尝试 POST 到 ASP.NET core 3 服务器。
但是我的number 始终是0。
ASP.Net Core 3 有没有我看不懂的技巧?
参数[FromBody]没有解决问题。并且作为参数的类没有帮助,值不会改变。
[HttpPost]
[Route("/api/add")]
public ActionResult<Dictionary<string, object>> Add(int number)
{
// number is always 0 :( <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
number += 1;
var d = new Dictionary<string, object>
{
["message"] = "Hello",
["number"] = number
};
return Ok(d);
}
let input = { number: 5825 }
$.ajax(
{
url: `/api/add`,
type: 'POST',
dataType: "json",
contentType: "application/json; charset=utf-8",
data: JSON.stringify(input),
accepts: "application/json",
complete: function (output) {
// completed
}
}
);
我的服务是
services.AddSession();
services.AddHttpContextAccessor();
services.AddControllersWithViews();
我用
app.UseSession();
app.UseStaticFiles();
app.UseRouting();
app.UseCors();
app.UseAuthorization();
app.UseEndpoints(endpoints => { endpoints.MapControllerRoute("default", "{controller=Default}/{action=Index}/{id?}"); });
【问题讨论】:
-
let input = { number: 0 }您将其设置为 0。 -
是的,抱歉,我忘记更改号码了。但显然这并不能解决问题(:
-
发布复杂类型以绑定到简单类型。
标签: javascript c# asp.net-core asp.net-core-3.0