为什么这个JQuery函数只适用于post?

时间:2017-03-09 17:06:19

标签: javascript jquery asp.net-mvc

为什么这个JQuery函数适用于post?但不是get?我不想改变我的数据库中的任何内容只是为了返回一些信息......似乎就像我传递参数一样,它只是在type: post中识别Ajax,即使我的意图是不改变任何东西。如果我在控制器操作中不使用type:"post"我的参数将是null

$(document).ready(function () {    
    $(".link").click(function () {      
        var grad = $(".link").data("graduate")
        $.ajax({
            type: "post",
            url: $(".link").data("url"),       
            data: JSON.stringify( { graduate: grad }),            
             contentType: "application/json; charset=utf-8"
        })
        $("#myModal").modal("show");
    })
})

这是我的控制者:

 public ActionResult PopulateModal(CMIPGraduateVM graduate)
        {
            return PartialView(graduate);
        }

2 个答案:

答案 0 :(得分:1)

您可以在POST请求的正文中发送数据。您只能使用URL参数传递带有GET请求的数据,例如url.com?this=that&so=on

答案 1 :(得分:0)

[HttpPost]添加到您的控制器方法,以允许它接受发布的数据。

[HttpPost]
public ActionResult PopulateModal(CMIPGraduateVM graduate)
{
    return PartialView(graduate);
}

并且CMIPGraduateVM需要是一个具有graduate属性的类,其类型与您使用grad变量提供的结构相匹配(var grad = $(".link").data("graduate");不确定这是否为字符串或者布尔或对象等)。