0

我用 Javascript 是我最喜欢的产品是没有窗口。单击是按钮时,产品将获得我最喜欢的并刷新背景页面。我MakeMyFavorite在控制器中有操作,但每次调用都会返回相同的结果。

public ActionResult MakeMyFavorite( int id )
{
   ....
   return RedirectToAction( "Details", "Product", product );
}

和 Javascript:

<script language="JavaScript" type="text/javascript">
    function confirmFavorite() {
        if (confirm("Are you sure make favorite?")) {
            document.location.reload(true);
            return true;
        } else {
            return false;
        }
    } 
</script>

和链接:

<a href="@Html.Action ( "MakeMyFavorite", "Product", new { id = item.ID } )" 
     onclick = "return confirmFavorite()"> Make Favorite </a> 

我在站点的不同位置(详细信息、索引和其他视图)使用 “收藏”链接。单击链接时,产品被收藏,页面刷新,但始终打开详细信息视图。我在控制器中更改ActionResultvoid,但从未打开,因为没有返回视图。我该怎么办,在网站的不同页面,当我点击收藏链接时,产品被收藏了,但背景页面没有改变?保持当前视图。(抱歉英语不好)

4

2 回答 2

1

当你想要重新加载时传入一个值 (true),当你不想时传入一个值 (false 或无参数):

<a href="@Html.Action ( "MakeMyFavorite", "Product", new { id = item.ID } )" 
 onclick = "return confirmFavorite( true )"> Make Favorite </a>

<a href="@Html.Action ( "MakeMyFavorite", "Product", new { id = item.ID } )" 
 onclick = "return confirmFavorite( false )"> Make Favorite </a>

然后在js中:

function confirmFavorite( reload ) {
    if (confirm("Are you sure make favorite?")) {
        if( reload ) {
            document.location.reload(true);
        }
        return true;
    } else {
        return false;
    }
}
于 2012-09-01T09:23:50.677 回答
1

你可以这样做

做一个 JsonResult 动作

public JsonResult MakeMyFavorite(int id)
{
   ......
   string result = "favorite";
   return this.Json(result, JsonRequestBehavior.AllowGet);
}

让你的锚标签像

<a href="#" id="myfav" onclick="confirmFavorite(@item.id);">Favorite</a>

和你的 jquery 来处理这个

<script type="text/javascript">
    function confirmFavorite (id) {
        if(confirm("Are you sure make favorite?")) {
           var data = { "id": id };
           $.getJSON("/Product/MakeMyFavorite", data, function (data) {
               //check your data here what it is returning
               if($.trim(data)=="favorite")
               {
                //Do what you want to do.
               }
           });
        }
     }

</script>
于 2012-09-01T09:32:30.323 回答