Привет всем!Ajax всегда возвращает ошибку
У меня проблемы с плохим вызовом Ajax. В моем проекте MVC3 у меня есть база данных, которая регистрирует строку, когда пользователь добавляет другого пользователя в свой список друзей.
Вот код HTML/Razor:
@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, любые идеи о том, как отменить это, когда я его создаю?
EDIT: Функция 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 выглядеть как то, что он делает выше, теперь Ajax получает что-то и возвращает успех , но я до сих пор в два раза добавить в 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)' return и что возвращает '/ Profile/AddFriend'? – karthikr
Какой у вас метод '/ Profile/AddFriend'? можете ли вы добавить его в свой пост? –
Извините за поздний ответ. @karthikr stringify возвращает идентификатор добавляемого друга. AddFriend ничего не возвращает, он недействителен. Это может быть проблема? – Mappan