AJAX调用没有将值传递给操作

时间:2013-03-19 17:44:40

标签: javascript ajax asp.net-mvc asp.net-mvc-4

我的视图包含:

(...)

<div id="txtMan@(item.ManufacturerId)" hidden>
    @Html.TextBoxFor(modelItem => item.ManufacturerName, new { @id = "txtBoxMan"+item.ManufacturerId })
</div>
<td>
    <input class="btnSave" id="btnSave@(item.ManufacturerId)" type="button" value="Save" onclick="saveButtonPressed(@item.ManufacturerId);" hidden />
</td>

(...)

相应的JavaScript:

saveButtonPressed = function (id) {
    var newManName = $('#txtMan' + id).val();

    $.ajax({
        type: "POST",
        async: true,
        url: '/Admin/BrandConfigurationNameUpdate/' + newManName,
        dataType: "json",
        success: function () {
            alert('Added');
        }
    });
}

和控制器:

public static void BrandConfigurationNameUpdate(string id)
{ 

}

我的目标是将文本框值保存到数据库中。但是,我在我的控制器中放了一个断点,它永远不会到达它。有什么建议吗?

编辑: 我尝试过GetJSON,但仍然无法正常工作。这是代码:

saveButtonPressed = function (id) {
    var newManName = $('#txtBoxMan' + id).val();
    alert(newManName);
    var URL = "~/Areas/Admin/Controller/Admin/BrandConfigurationNameUpdate/";

    $.getJSON(URL, { "id": id, "newManName": newManName }, function (data) {
        alert("finished");
    });
}

1 个答案:

答案 0 :(得分:3)

您必须将data选项作为对象(键值对)传递,否则该值将不会被POST:

saveButtonPressed = function (id) {
    var newManName = $('#txtMan' + id).val();

    $.ajax({
        type: "POST",
        async: true,
        url: '/AdminController/BrandConfigurationNameUpdate/',
        data : {newManName : newManName},
        dataType: "json",
        success: function () {
            alert('Added');
        }
    });
}