如何使用ajax将数据从视图传递到控制器?

时间:2017-02-20 07:02:40

标签: ajax asp.net-mvc

视野中的代码:

function DeleteSelected() {
    var data = "ID=";
    $("input[type=checkbox]").each(function () {
        if ($(this).attr('name') == "IDS[]") {
            if ($(this).prop('checked') == true) {
                data += $(this).val();
                data += ":";
            }
        }
    });
    alert(data.toString());
    $.ajax({
        url: '/Color/DeleteAll',
        type: "POST",
        data: "1,2",
        dataType: "json",
       // contentType: "application/json; charset=utf-8",
        success: function (data) {
            alert(data);
            location.reload();
        },
        error: function () {
            location.reload();
            alert("error");
        }
    });
}

控制器中的代码

public string DeleteAll(string data)
{
    gen_ColorModel a = new Models.EDUERPGeneral.gen_ColorModel();
    a.Gen_ColorFactory.Delete(a.Gen_Color);
    string ids = data;
    string[] allIDs = ids.Split(':');
    // rest of the code
    return "";
}

在Controller数据中为null,不应为null

2 个答案:

答案 0 :(得分:0)

您可以使用如下的参数数据从ajax调用传递数据。

$('#Link').click(function () {      
$.ajax({
    url: http://localhost/Account/Process,
    type: 'GET',
    data: { 
            id: "@ViewBag.MyUser.ID",
            name: "@ViewBag.MyUser.Name" 
          },
    success: function () {
    },
    error: function () {                
    }
});

并在Controller上获取该数据如下。

public ActionResult Process(int id, string name)
{
   //Do something
}

希望这会对你有所帮助。 感谢

答案 1 :(得分:0)

var url = "<?php echo base_url();?>index.php/Controller/method";
$.ajax({
    type: 'POST',
    url: url,
    dataType: 'JSON',
    data: {
        variable1: value1,
        variable2: value2,
        variable3: value3,
    }
    success: function(rs) {
    }
});