我正在尝试调用ActionResult
并根据Action
返回的结果更新页面上img的值,但由于某种原因,我发布到刚打印的新页面字符串
public ActionResult Favorite(int? id)
{
int PId = Convert.ToInt32(pid);
if (MyDb.CheckExist(Convert.ToInt32(User.Identity.Name),PId))
{
var UF = MyDb.GetExist( Convert.ToInt32(User.Identity.Name),PId);
MyDb.Delete(UF);
MyDb.Save();
return Json(new { Url= "/Content/oldimage.png" }, JsonRequestBehavior.AllowGet);
}
else
{
UFs UF = new UFs();
UF.Id = PId;
UF.UserId = Convert.ToInt32(User.Identity.Name);
UF.CreatedDate = DateTime.Now;
MyDb.Add(UF);
MyDb.Save();
return Json(new { Url= "/Content/newimage.png"}, JsonRequestBehavior.AllowGet);//return favorite image
}
}
我的锚标签调用我的ajax
<a href='<%= Url.Action("Favorite","Home", new { id = item.Id })%>' class="Image" style="text-decoration:none">
<img src="/Content/Images/oldimage.png" alt="FavoriteImage" style="height:25px;width:30px" id="favorite<%:item.Id %>" class="ImageTag" /></a>
$('.Image').click(function () {
var id = this.children('.ImageTag').attr('id');
$.ajax({
url: this.href,
type: 'POST',
dataType: "json",
success: function (data) {
$('#' + id).attr('src', data.Url);
},
error: function (xhr, ajaxOptions, thrownError) {
$.unblockUI();
}
});
return false;
});
然后会发生什么事情是服务器上的操作被点击但页面发布到Home / Favorite显示返回的Json。主页/收藏甚至不是一种观点。
答案 0 :(得分:1)
您应该阻止默认行为,链接正在为收藏夹 Action
刷新整个页面的新请求,获取JSON的响应。
$('.Image').click(function(event) {
event.preventDefault();
//do stuff here
});