我的视图包含:
(...)
<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");
});
}
答案 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');
}
});
}