加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – Asp.net MVC控制器Action字符串参数未通过

发布时间:2020-12-16 07:32:02 所属栏目:asp.Net 来源:网络整理
导读:在我的控制器中我有 public JsonResult GetInfo(string id) 在我的js $.ajax({ contentType: 'application/json,charset=utf-8',type: "POST",url: "/Incidents/GetInfo",data: { id: "777" },cache: false,dataType: "json",success: function (response) {
在我的控制器中我有

public JsonResult GetInfo(string id)

在我的js

$.ajax({
        contentType: 'application/json,charset=utf-8',type: "POST",url: "/Incidents/GetInfo",data: { id: "777" },cache: false,dataType: "json",success: function (response) {
//etc....

jquery ajax错误委托被执行.如果我使用

data: { "777" },

没有错误,但值没有通过.这应该很容易,但我正在撞墙.也许我不被允许将字符串传递给控制器??的动作?

我在这做错了什么?

解决方法

您正在指示application / json请求,并且您正在发送application / x-www-form-urlencoded请求.因此,您必须在两种方法中选择一种来编码参数,而不是混合它们.

应用程序/ x-WWW窗体-urlencoded:

$.ajax({
    type: "POST",...
});

应用程序/ JSON:

$.ajax({
    type: "POST",contentType: 'application/json,data: JSON.stringify({ id: "777" }),...
});

JSON.stringify方法本身构建在现代浏览器中,用于将javascript文字转换为JSON字符串,这是我们表示将发送请求的字符串.如果您必须支持旧版浏览器,则可以将json2.js脚本包含在包含此方法的页面中.

作为旁注,不需要dataType:“json”设置,因为服务器会将正确的Content-Type标头设置为application / json,而jQuery足够智能使用它.

作为第二个注意事项,你真的不想在你的javascript文件中硬编码这样的url:url:“/ Incidents / GetInfo”.你想要的是在生成url时使用url helper:url:“@ Url.Action(”GetInfo“,”Incidents“)”.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读