【发布时间】:2018-12-06 11:08:59
【问题描述】:
我的目标是:
我正在尝试将值发送到我的控制器的方法中以更新数据库(通过 API 远程连接)。
我查看了几个教程(例如How to pass parameters in $ajax POST?),但我无法在控制器中发送数据我有一个 500 错误,这是由于我的 ajax 调用。
你能告诉我该怎么做吗?
查看
$(document).ready(function () {
$.ajax({
url: "http://localhost:44338/Registration/ShowRegistration",
type: 'POST',
data: JSON.stringify({ "id": 1 }),
contentType: 'application/JSON',
success: function (data) { },
error: function () { }
})
});
控制器
[Authorize]
[HttpPost]
public async Task<ActionResult> ShowRegistration(Models.RegisterForm rF)
{
try
{
var test = rF.id;
Ok("success");
}
catch (Exception e)
{
Console.Write(e.Message);
return BadRequest();
}
return View();
}
型号
public class RegisterForm
{
public string id { get; set; }
}
【问题讨论】:
-
A 500 被称为“内部服务器错误”,这意味着您的服务器正在抛出异常。这可能是因为发送到 api 的参数无效(您是否调试过您发送的数据是什么?)或者因为您的服务器端代码中存在其他问题。您是否在控制器操作中放置了断点以检查发生了什么?
-
是的,但实际上它没有进入我的控制器,这就是为什么我认为问题与我的 ajax 声明直接相关?
-
我猜想改变 contentType: 'application/json; charset=utf-8',你能检查一下日期时间格式吗
-
应该的。我认为问题在于日期参数(签入、签出)不是日期类型,而是字符串。首先将这些字符串解析为日期对象,然后在数据对象中使用 toISOString 方法。
-
整个应用程序是否在
https://localhost:44338/上运行?也许使用相对路径发布到,如果您有 jQuery 检索复选框的值,它返回on而没有true或 @ 987654328@。你可以使用.is(':checked')
标签: c# jquery asp.net ajax model-view-controller