Asp.net mvc ActionLink到HttpPost操作方法
我的页面上有以下链接:Asp.net mvc ActionLink到HttpPost操作方法,asp.net-mvc,asp.net-mvc-3,jquery,Asp.net Mvc,Asp.net Mvc 3,Jquery,我的页面上有以下链接: @Html.ActionLink("Like", "Like", "Like", new {likeId = i.ItemId}, new {id = @i.ItemId, @class = "likeButton"}) 这是我的ajax调用: $(document).on("click", ".likeButton", function (event) { var itemId = event.target.id; $.ajax({
@Html.ActionLink("Like", "Like", "Like", new {likeId = i.ItemId}, new {id = @i.ItemId, @class = "likeButton"})
这是我的ajax调用:
$(document).on("click", ".likeButton", function (event) {
var itemId = event.target.id;
$.ajax({
url: this.href,
type: 'POST',
data: { item: itemId },
context: this,
success: function (result) {
...
return false;
});
当动作metohd类似于:
public ActionResult Like(int itemId)
...
但如果我用[HttpPost]
装饰方法,它就不起作用了这能实现吗?
另外,如果我不添加
[HttpPost]
,会出现什么安全问题?请尝试以下操作:
$(document).on("click", ".likeButton", function (event) {
$.ajax({
url: this.href,
type: 'POST',
context: this,
success: function (result) {
...
return false;
});
您将传递item.Id两次,第一次在url中,第二次在正文中。使用post方法时,仍然可以通过url传递参数。当您想要隐藏这些参数时,可以通过body传递参数
还有一件事,在这种情况下可以使用Ajax.ActionLink(因为它是为这种情况创建的)
你错了:
data: { item: itemId }
应该是:
data: { itemId: itemId },
您正在查找“int itemId”,为什么要传递项:“data:{item:itemId}”?是的,当我从函数中删除“data”时,问题就消失了。