我有一個方法叫AddtoFavourites. 當用戶單擊收藏按鈕時,我想給用戶一個通知,例如“這本書已添加到您的收藏夾”并保持在同一頁面上。但是當我單擊該按鈕時,它說它無法完成,因為您沒有AddtoFavourites方法視圖。當用戶單擊收藏按鈕時,我不想更改頁面。我怎樣才能只使用方法,而不是視圖?
家庭控制器:
public ActionResult AddtoFavourites(Table_Book book,Table_user user)
{
Table_Book book1= bookrepo.Find(i => i.BookID== book.BookID);
return View(book1);
}
[HttpPost]
public ActionResult AddtoFavourites(Table_Book book)
{
User data = TempData["mydata"] as User;
Table_FavouriteBooks z = new Table_FavouriteBooks ();
var tbookid = book.BookID;
z.BookID = tbookid ;
z.UserID = data.UserID;
favouriterepo.Add(z);
// return new ContentResult() { Content = "<script language='javascript' type='text/javascript'>alert('Thanks for Feedback!');</script>" };
// return JavaScript(alert("Hello this is an alert"));
return RedirectToAction("index", "Home");
}
視圖中的收藏按鈕:
<a href="/Home/AddtoFavourites/" type="checkbox">
<form method="post">
<i class="fa fa-heart-o">
Add to Favourites
</i>
</form>
</a>
uj5u.com熱心網友回復:
下面的代碼使用 AJAX 發送Table_Book到控制器以更新專案:
[HttpPost]
public JsonResult AddtoFavourites(Table_Book book)
{
User data = TempData["mydata"] as User;
Table_FavouriteBooks z = new Table_FavouriteBooks ();
var tbookid = book.BookID;
z.BookID= tbookid ;
z.UserID= data.UserID;
favouriterepo.Add(z);
return Json("Book is added");
}
AddtoFavourites.cshtml觀點:
@model Models.Table_Book
@{
ViewBag.Title = "AddtoFavourites";
}
<h2>AddtoFavourites</h2>
.... Your code to update/prepare the Table_Book item will be here
<a href="#" type="checkbox" >
<form method="post">
@Ajax.ActionLink("Add to Favourites", "AddtoFavourites", "Home", null,
new AjaxOptions { HttpMethod = "POST" },
new { @class = "addFavorite", onclick = "return false;" })
</form>
</a>
@section Scripts {
@Scripts.Render("~/Scripts/jquery-3.3.1.min.js")
@Scripts.Render("~/Scripts/jQuery.validate.min.js")
@Scripts.Render("~/Scripts/jQuery.validate.unobtrusive.min.js")
@Scripts.Render("~/bundles/jqueryval")
<script type="text/javascript">
$(document).ready(function () {
$('.addFavorite').click(function () {
var model = @Html.Raw(Json.Encode(Model));
$.ajax({
url: this.href,
type: 'POST',
contentType: 'application/json; charset=utf-8',
data: JSON.stringify(model),
success: function (result) {
alert(result);
}
});
return false;
});
});
</script>
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/503851.html
標籤:javascript C# 阿贾克斯 asp.net-mvc
上一篇:如何在Reactjs簡單的測驗應用程式中正確處理useStates和useEffects,該應用程式將所有內容渲染兩次?
