0
你好,那些查看這個!阿賈克斯總是返回錯誤
我遇到了一些麻煩的Ajax調用。 在我的MVC3項目中,我有一個數據庫,當用戶在他的好友列表中添加另一個用戶時,它會註冊一行。
下面是HTML /剃刀代碼:
@if(!Model.areFriends){
<div id="AddFriendAncor" class="AddButton"><a href="#" id="@Model.theUser.userID" class="Add">Add to friendlist</a></div>
}
else
{
<div class ="AddFriendAncor"><a href="#" id="DoneAdding">You are friends</a></div>
}
下面是使用Javascript/jQuery的/ Ajax代碼。
$(".Add").on("click", function (event) {
event.preventDefault();
var acceptThisFriend = { "ID": event.target.id };
$.ajax({
type: "POST",
url: "/Profile/AddFriend",
contentType: "application/json; charset=utf-8",
dataType: "json",
data: JSON.stringify(acceptThisFriend),
success: function() { alert("Works");},
error: function()
{
document.getElementById(acceptThisFriend.ID).innerHTML = "Friend Added";
}
});
});
您可能會注意到,錯誤函數實際上持有成功函數應具有的內容。 原因是它的工作方式。這太可怕了,但我必須得到一些工作。
此外,它將兩個實例添加到數據庫。這是因爲它動態地創建了Html,當我創建它時如何解除此綁定的任何想法?
編輯:AddFriend功能:
的AddFriend功能被拍成這個代替:
public virtual ActionResult AddFriend(string ID)
{
System.Diagnostics.Debug.WriteLine(ID);
var friendID = Convert.ToInt32(ID);
var user = u_rep.GetUser(User.Identity.Name);
f_rep.AddFriend(user.userID, friendID);
return Json(true);
}
我改變了AddFriend看起來像什麼上面呢,現在阿賈克斯得到的東西,返回成功,但我還是兩次添加到數據庫dispite改變我的Ajax這樣的:
$(".Add").on("click", function (event) {
event.preventDefault();
var acceptThisFriend = { "ID": event.target.id };
$.ajax({
type: "POST",
url: "/Profile/AddFriend",
contentType: "application/json; charset=utf-8",
dataType: "json",
data: JSON.stringify(acceptThisFriend),
success: function() { $("#AddFriendAncor").replaceWith("<p>Vini bætt við</p>"); },
error: function()
{
alert("fail");
}
});
});
'JSON.stringify(acceptThisFriend)'返回什麼'/ Profile/AddFriend'返回什麼? – karthikr 2013-05-12 20:44:12
你有什麼'/ Profile/AddFriend'方法?你可以將它添加到你的文章? – 2013-05-12 20:45:48
對不起,遲交的答案。 @karthikr stringify返回要添加的朋友的ID。 AddFriend不返回任何內容,它是無效的。這可能是問題嗎? – Mappan 2013-05-12 21:23:49