我正在使用 jQuery 将一些数据发送到 MVC 5 Controller 上的 ActionMethod。当其中一个参数为 true
时,一切正常,但当它为 false
时,我会得到 404。
这工作正常(HTTP 200)
var data = { userId: userId, approve: true, reason: 'Unaccepted'};
$.post('approve-user', data, function (response) {
...
这会导致 404
var data = { userId: userId, approve: false, reason: 'Unaccepted'};
$.post('approve-user', data, function (response) {
...
我的操作方法具有以下签名:
[POST("approve-user")]
public async Task<JsonResult> ApproveOrRejectPost(int userId, bool approve, string reason) {
我认为将 JS bool 值转换为 .NET 可以理解的东西可能会有一个怪癖,但如果我在方法签名中使用字符串,也会发生同样的情况。导致它失败的唯一原因似乎是中间的 bool 变量。
最佳答案
我认为 bool 的位置可能会导致问题,我不确定,但我可以建议您快速修复,因为 ts 显示 404 错误,这意味着当 bool 值为 false 时无法找到您的操作
在你的行动中尝试这个
public async Task<JsonResult> ApproveOrRejectPost(int userId, bool approve = false, string reason) {
即使也尝试交换客户端和服务器端的参数 并检查结果
public async Task<JsonResult> ApproveOrRejectPost(int userId, string reason, bool approve) {
关于javascript - jQuery POST 中的 bool 值到 MVC5 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45461666/