我用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>
我在网站的不同位置使用制作收藏链接(详细信息,索引和其他视图)。单击链接时,产品是收藏夹,页面刷新,但始终打开详细信息视图。 我在控制器中使用 void 更改了 ActionResult ,但从未打开过,因为没有返回视图。 我应该怎么做,在网站的不同页面,当我点击制作收藏链接时,产品是最喜欢的,但背景页面不会改变?保持目前的观点。 (抱歉英文不好)
答案 0 :(得分:1)
当你想要重新加载时传入一个值(true),否则传递(false或没有param):
<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;
}
}
答案 1 :(得分: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>