3

ActionResultから返された結果に基づいてページ上の img の値を呼び出して更新しようとしていますActionが、何らかの理由で、文字列を印刷するだけの新しいページに投稿します

   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 が表示されます。ホーム/お気に入りはビューでもありません。

4

1 に答える 1