[HttpPost] //指定只有使用POST方法才可進入 public ActionResult Create(Models.Product postback) { /*判斷如果Product資料驗證通過,則設定成功訊息至TempData,並且轉導致Index頁面。 */ //如果資料驗証成功 if (this.ModelState.IsValid) { using (Models.CartsEntities1 db = new Models.CartsEntities1()) { //將回傳資料 postback加入至products db.Products.Add(postback); //儲存異動資料 db.SaveChanges(); //設定成功訊息 TempData["ResultMessage"] = String.Format($"商品[{postback.Name}]成功建立"); //轉導product/Index頁面 return(RedirectToAction("Index")); } } //失敗訊息 ViewBag.ResultMessage = "資料有誤,請檢查"; //停留在Create頁面 return(View(postback)); }
public ActionResult SearchByUserName(string userName) { // 儲存查詢出來的 UserId string SearchUserId = null; using (Models.UserEntities db = new Models.UserEntities()) { SearchUserId = db.AspNetUsers .Where(w => w.UserName == userName) .Select(s => s.Id).FirstOrDefault(); } //如果有存在UserId if (!string.IsNullOrEmpty(SearchUserId)) { //找出該UserId的所有訂單 using (Models.CartsEntities1 db = new Models.CartsEntities1()) { var result = db.Orders .Where(w => w.UserId == SearchUserId) .Select(s => s).ToList(); //回傳結果至Index頁面 return(View("Index", result)); } } //回傳空結果至Index View return(View("Index", new List <Models.Order>())); }
//刪除是很重要的操作,如果使用者直接在網址列輸入網址就可以刪除的話,其實是很危險的一件事情,所以我們選擇使用Post來完成。 public ActionResult Delete(int id) { using (Models.CartsEntities1 db = new Models.CartsEntities1()) { //抓取Product.Id等於輸入id的資料 var result = (from s in db.Products where s.Id == id select s).FirstOrDefault(); //判斷此id是否有資料 if (result != default(Models.Product)) { db.Products.Remove(result); //儲存所有變更 db.SaveChanges(); //設定成功訊息並導回index頁面 TempData["ResultMessage"] = String.Format($"商品[{result.Name}]成功刪除"); return(RedirectToAction("Index")); } else {//如果沒有資料則顯示錯誤訊息並導回Index頁面 TempData["resultMessage"] = "指定資料不存在,無法刪除,請重新操作"; return(RedirectToAction("Index")); } } }
// GET: ManageOrder public ActionResult Index() { using (Models.CartsEntities1 db = new Models.CartsEntities1()) { //取得Order中所有資料 var result = db.Orders.Select(s => s).ToList(); return(View(result)); } }
public ActionResult Index() { //修改首頁為正常的購物網站首頁 //將HemeController的Index()改為抓取Product表所有資料 using (Models.CartsEntities1 db = new Models.CartsEntities1()) { var result = db.Products.ToList(); return(View(result)); } }
/*Day27 會員我的訂單功能 * 在OrderController中新增兩個方法(Action), * 分別為MyOrder()與MyOrderDetail(), * 其中MyOrder()功能為取得會員目前所有訂單, * MyOrderDetail則是取得某筆訂單內的詳細商品資訊 */ public ActionResult MyOrder() { // 取得目前登入使用者 Id var UserId = HttpContext.User.Identity.GetUserId(); using (Models.CartsEntities1 db = new Models.CartsEntities1()) { var result = db.Orders .Where(w => w.UserId == UserId) .Select(s => s).ToList(); return(View(result)); } }
public ActionResult MyOrderDetail(int id) { using (Models.CartsEntities1 db = new Models.CartsEntities1()) { var result = (from s in db.OrderDetails where s.OrderId == id select s).ToList(); if (result.Count == 0) { return(RedirectToAction("Index")); } else { return(View(result)); } } }
//Day29_1 新增Details(),主要為顯示某個編號之商品詳細資訊 public ActionResult Details(int?id) { using (Models.CartsEntities1 db = new Models.CartsEntities1()) { var result = (from s in db.Products where s.Id == id select s).FirstOrDefault(); if (result == default(Models.Product)) { return(RedirectToAction("Index")); } else { return(View(result)); } } }
// GET: Product public ActionResult Index() { //宣告回傳產品列表result List <Models.Product> result = new List <Models.Product>(); //接收轉導的成功訊息(將轉導的成功訊息設定給ViewBag變數) ViewBag.ResultMessage = TempData["ResultMessage"]; //使用CartsEntities類別,名稱為db using (Models.CartsEntities1 db = new Models.CartsEntities1()) { //使用LinQ語法抓取目前Products資料庫中所有資料 result = (from s in db.Products select s).ToList(); } // //將 result 傳送給檢視 return(View(result)); }
public ActionResult Details(int id) { using (Models.CartsEntities1 db = new Models.CartsEntities1()) { //取得 OrderId 為傳入 id 的所有商品列表 var result = db.OrderDetails .Where(w => w.OrderId == id) .Select(s => s).ToList(); if (result.Any()) { return(View(result)); } else { //如果商品數目為零,代表該訂單異常 (無商品)。導回商品列表。 return(RedirectToAction("Index")); } } }
//編輯商品頁面 //新增Edit()方法,輸入為id,此Action是準備接收剛剛步驟1Index頁面新增的[Edit]超連結之請求(Request)。 public ActionResult Edit(int id) { using (Models.CartsEntities1 db = new Models.CartsEntities1()) { //抓取product.Id等於輸入id的資料 var result = (from s in db.Products where s.Id == id select s).FirstOrDefault(); //判斷此id是否有資料 if (result != default(Models.Product)) { //如果有,回傳編輯商品頁面 return(View(result)); } else { //如果沒有資料,則顯示資料錯誤訊息,並導回Index頁面 TempData["resultMessage"] = "資料有誤,請重新操作"; return(RedirectToAction("Index")); } } }
//Day25 //OrderController 的Index() 定義如何將資料存入訂單資料庫(Order與OrderDetail資料表), //其中順序為先寫入Order後, //再寫入OrderDetail。 public ActionResult Index(Models.OrderModel.Ship model) { if (this.ModelState.IsValid) { //取得目前購物車 var CurrentCart = Models.Carts.Operation.GetCurrentCart(); //取得目前登入使用者 Id var UserId = HttpContext.User.Identity.GetUserId(); using (Models.CartsEntities1 db = new Models.CartsEntities1()) { //建立Order物件 var order = new Models.Order() { UserId = UserId, ReceiverName = model.ReceiverName, ReceiverPhone = model.ReceiverPhone, ReceiverAddress = model.ReceiverAddress }; // 加入 Order 資料表後,儲存變更 db.Orders.Add(order); db.SaveChanges(); //取得購物車中的 OrderDeatil 物件 var orderDetails = CurrentCart.ToOrderDetailList(order.Id); //將 OrderDetails 物件,加入OrderDetail資枓表後,儲存變更。 db.OrderDetails.AddRange(orderDetails); db.SaveChanges(); } return(Content("訂購成功")); } return(View()); }
[Authorize] // 登入會員才能留言 public ActionResult AddComment(int id, string content) { // 取得目前登入使用者 Id var UserId = HttpContext.User.Identity.GetUserId(); var CurrentDateTime = DateTime.Now; var Comment = new Models.ProductComment() { ProductId = id, Content = content, UserId = UserId, CreateDate = CurrentDateTime }; using (Models.CartsEntities1 db = new Models.CartsEntities1()) { db.ProductComments.Add(Comment); db.SaveChanges(); } return(RedirectToAction("Details", new { id = id })); }
/*由於原本Index頁面的Delete按鈕是使用Get操作,此將Delete()方法改為Post,所以伺服器找不到相對應的方法而產生錯誤。 * 故須到Index頁面, * 將原本使用ActionLink的刪除按鈕改為使用BeginForm*/ public ActionResult Edit(Models.Product postback) { //判斷使用者輸入資料是否正確 if (this.ModelState.IsValid) { using (Models.CartsEntities1 db = new Models.CartsEntities1()) { //抓取Product.Id等於回傳postback.ID的資枓 var result = (from s in db.Products where s.Id == postback.Id select s).FirstOrDefault(); //儲存使用者變更資料 result.Name = postback.Name; result.Price = postback.Price; result.PublishDate = postback.PublishDate; result.Quantity = postback.Quantity; result.Status = postback.Status; result.CategoryId = postback.CategoryId; result.DefaultImageId = postback.DefaultImageId; result.Description = postback.Description; result.DefaultImageURL = postback.DefaultImageURL;//Edit() Action 內新增儲存DefaultImageURL的程式碼 //儲存所有變更 db.SaveChanges(); //設定成功訊息並導回index頁面 TempData["ResultMessage"] = String.Format($"商品[{postback.Name}]成功編輯"); return(RedirectToAction("Index")); } } //如果資料不正確則導向自己(Edit頁面) else { return(View(postback)); } }