• 1403/03/30

استفاده از ویو مدل داخلی :

من برای سبد خریدم یه ویو مدل کلی دارم:

 

   public class CartViewModel
   {
       public List<CartItemViewModel> Items { get; set; } = new List<CartItemViewModel>();
       public List<CartAddressViewModel> CartAddresses { get; set; }
       public CartDeliveryAndPaymentDetails CartDeliveryDateViewModel { get; set; }
       public decimal Tax { get; set; }

       public decimal TotalPrice
       {
           get
           {
               return Items.Sum(item => item.ChefFoodsPrice * item.Quantity);
           }
       }

       public decimal FinalPrice
       {
           get
           {
               return TotalPrice + (TotalPrice * Tax / 100);
           }
       }
}

که هر ویو مدل برای یه قسمت از فرم های استپ فرم سبد خرید هست 
در فرم سوم میخوام تاریح تحویل ... رو بگیرم در سشن ذخیره کنم:

 

    public class CartDeliveryAndPaymentDetails
    {
        public DateTime DeliveryDate { get; set; }
        public string DeliveryTime { get; set; }
        public string Details { get; set; }
        public PaymentType PaymentMethod { get; set; }

    }

در قسمت ویو باید این طوری دریافتش کنم:
 

 <form asp-action="SaveDeliveryAndPaymentDetails" method="post">
 

<label class="text-muted ml-2"> Delivery Date</label>


 <input asp-for="CartDeliveryDateViewModel.DeliveryDate" type="text" class="form-control" placeholder="2017-06-04" id="mdate">
<span asp-validation-for="CartDeliveryDateViewModel.DeliveryDate" class="text-danger"></span></div>


 <label class="text-muted ml-2">Delivery Time</label>
 <input asp-for="CartDeliveryDateViewModel.DeliveryTime" type="text" id="date-format" class="form-control" placeholder="21:44">
 <span asp-validation-for="CartDeliveryDateViewModel.DeliveryTime" class="text-danger"></span> </div>
 ووو

درسته دیکه این طوری میشه چون ویو مدل داخلی هست؟

ولی هر کاری میکنم این قسمت فقط تتال وارد متد میشه و اطللعات رو از فرم وارد سشن ذخیره نمیکنه 

public  IActionResult SaveDeliveryAndPaymentDetails(CartDeliveryAndPaymentDetails model)

 {
     if (ModelState.IsValid)
     {
         // Save delivery and payment details in session
         var deliveryAndPaymentDetails = new CartDeliveryAndPaymentDetails
         {
             DeliveryDate = model.DeliveryDate,
             DeliveryTime = model.DeliveryTime,
             Details = model.Details,
             PaymentMethod = model.PaymentMethod
         };
 _orderService.SaveDeliveryAndPaymentDetailsInSession(deliveryAndPaymentDetails);

 return RedirectToAction("CheckOut"); // Redirect to the checkout page
     }

     // If model state is not valid, return to the same view with errors
     return RedirectToAction("CheckOut", "Home");
 }
  • 1403/04/07
  • ساعت 10:00

کاربرگرامی ! لطفا به پیام صوتی زیر گوش دهید.


  • 1403/04/07
  • ساعت 11:17

ممنون استاد حل شد بعد از کلی کلنجار🙏🌺


logo-samandehi