من برای سبد خریدم یه ویو مدل کلی دارم:
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");
}
کاربرگرامی ! لطفا به پیام صوتی زیر گوش دهید.
ممنون استاد حل شد بعد از کلی کلنجار🙏🌺