大家好我有一个ajax,它必须将数据发布到我的控制器动作方法,但是post函数没有触发它没有点击我的Action方法,任何人都可以告诉我哪里做错了,功能保存菜单我调用我的按钮的onclick函数,每件事情都很顺利它会执行savemenu和parsetree这个函数但是我的ajax方法没有触发:
function savemenu() {
var columns = $("#columnholder > div").length;
$("#columnholder > div").each(function (data) {
var divid = $(this).attr("id");
parseTree(divid);
});
}
function parseTree(ul) {
var brand = "";
var parent;
alert(ul);
$("#" + ul).find("ol").each(function (event, ui) {
$("#" + ul).find("li").each(function () {
parent = $(this).attr("parent");
if ($(this).children("span").length) {
brand = brand + $(this).children("span").html() + '~' + $(this).children("span").attr('id') + "=>" + parent + '|';
alert(brand);
}
});
return false;
});
var postdata = JSON.stringify(brand);
var MenuBuilderURL = '@Url.Action("MenuDrag","MenuBuilder")';
alert(MenuBuilderURL);
$.ajax({
type: "POST",
url: "/MenuBuilder/MenuDrag/",
dataType: "json",
data: JSON.stringify(brand),
contentType: 'application/json; charset=utf-8',
success: function (data) {
alert(data.Result);
},
traditional: true
});
}
这是我的控制器动作方法
public ActionResult MenuDrag()
{
return View();
}
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult MenuDrag(List<String> data)
{
return View();
}
任何人都可以帮助我吗
答案 0 :(得分:0)
正如你所说的ajax调用正在激活你的方法,现在如果你想将你的字符串发布到动作
替换
var postdata = JSON.stringify(brand);
与
var postdata = {};
postdata.menustring = brand;
并在你的ajax post方法中
$.ajax({
url: 'yoururl',
type: "POST",
dataType: "json",
data: JSON.stringify(postdata),
contentType: 'application/json; charset=utf-8',
success: function (data) {
alert(data.Result);
},
traditional: true
});
希望它会帮助你