사용자가 다른 사용자에게 점수를 추가 할 수있는 사이트에서 작업하고 있지만 사용자가 다른 특정 사용자에게 점수를 추가하면 동일한 사용자에게 점수를 더 추가 할 수 없습니다. 따라서 user1은 user2에 한 지점 만 제공 할 수 있습니다.asp.net 액션에서 반환 자바 스크립트
서버에서 동일한 사용자 이름으로 포인트가 이미 있는지 확인합니다. 모든 일이 멋지게 작동하므로 지금 내가 원하는 것은 사용자에게 이전에 포인트를 추가 했으므로 포인트를 추가 할 수 없다는 메시지를 사용자에게 알리는 것입니다. 나는 내가 필요한 메시지를 표시 할 서버에서 자바 스크립트를 반환하는 것입니다 생각합니다. 그러나 이것에 대한 다른 해결책이있을 수 있습니다. 여기
[HttpPost]
public ActionResult AddPointAndCopyCurrentFavToPlaylist(int id)
{
if (CheckIfPointExists(User.Identity.Name, id))
{
var originalSong = repository.GetCurrentFav(id);
var newSong = new Song();
newSong.UserName = User.Identity.Name;
newSong.Title = originalSong.Title;
newSong.YoutubeLink = originalSong.YoutubeLink;
newSong.GenreId = 38;
newSong.Date = DateTime.Now;
repository.AddSong(newSong);
var point = new Point();
point.UsernameGotPoint = originalSong.UserName;
point.UsernameGavePoint = User.Identity.Name;
point.Date = DateTime.Now;
point.Score = 1;
point.CurrentFavId = id;
repository.AddPoint(point);
repository.Save();
return RedirectToAction("Index");
}
else return JavaScript(???);
}
내 JQuery와 아약스입니다 : 여기 컨트롤러 내 행동은 그가 내가 표시 할 내 아약스 요청의 성공 부분에 포인트로 제공 할 수 없습니다 여부에 따라
$(".btnAddOtherSongPoints").click(function() {
var songId = $(this).attr("name");
$.ajax({
beforeSend: function() { ShowAjaxLoader(); },
url: "/Home/AddPointAndCopyOtherSongToPlaylist/",
type: "POST",
data: { id: songId },
success: function() { HideAjaxLoader(), ShowMsg("Song Added Successfully") },
error: function() { HideAjaxLoader(), ShowMsg("Song could not be added, please try again") }
});
});
다른 메시지 그래서 나는 데이터 개체가 null이 아닌지 (이 경우에는 서버가 뭔가를 반환했다는 것을 확인하는 if 문이 필요하다는 것을 짐작할 수있다.이 경우에는 javascript 함수 또는 이와 비슷한 것)
동의하지만 클라이언트 측에서 어떻게 확인하겠습니까? 그리고 서버에서 무엇을 반환합니까? –
샘플 컨트롤러 및보기 코드가 추가되었습니다. –
또한 컨트롤러에서 JavaScript를 반환하지 않는 또 다른 이유는 컨트롤러의 사용을 제한한다는 것입니다. 이 컨트롤러를 다른 페이지에서 사용하고 JavaScript를 반환하지 않으려면 별도의 컨트롤러를 만들어야합니다. –