返回纯文本JSON请求

时间:2013-08-09 01:23:40

标签: c# asp.net-mvc jquery

我正在尝试调用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。主页/收藏甚至不是一种观点。

1 个答案:

答案 0 :(得分:1)

您应该阻止默认行为,链接正在为收藏夹 Action刷新整个页面的新请求,获取JSON的响应。

$('.Image').click(function(event) {
  event.preventDefault();

  //do stuff here

});