c# - 为什么我不能使用 ajax 将参数发送到操作方法?

标签 c# jquery asp.net-mvc

此代码无需发送参数即可运行:

$(function () {
        $('#Fee').on('focus', function () {
            $.ajax({
                url: '@Url.Action("GetFee")', 
                dataType: "json", 
                type: "POST",
                contentType: 'application/json; charset=utf-8', 
                cache: false, 
                data: { }, 
                success: function (data) {
                    if (data.success) {
                        $('#Fee').val(data.message);
                    }
                }
            });
        });
    });

但是,如果我想将参数发送到 GetFee 操作方法,它就不再起作用了:

data: { bookname : 'book1' }

然后我更改了我的操作方法以接受参数:

[HttpPost]
public ActionResult GetFee(string bookname)

最佳答案

您指出:

contentType: 'application/json; charset=utf-8',

因此请确保您尊重您声称要发送到服务器的内容:

data: JSON.stringify({ bookname : 'book1' })

另一方面,如果你在你的请求中去掉这个application/json内容类型,jQuery将使用application/x-www-form-urlencoded默认然后你可以简单地使用这个:

data: { bookname : 'book1' }

关于c# - 为什么我不能使用 ajax 将参数发送到操作方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41759066/

相关文章:

c# - 如何在可取消的异步/等待中处理 TransactionScope?

jquery - 模态 - 移动端居中对齐

asp.net-mvc - Linq查询,如何orderby

javascript - 每次模式打开同一个文件

javascript - 使用 jQuery Word 导出插件时出现未定义错误

asp.net-mvc - 在mRender中获取单元格值

javascript - 序列化 JSON MVC 类型的对象时检测到循环引用

c# - 将此 .NET 字符串更改为 const 是否会提高性能? IL 会自动执行此操作吗?

c# - 当涉及到 MessageBox 时,String.Format() 的对齐方式表现不同

c# - 从具有 Unicode 编码的 txt 文件中读取 -- C++/C#