Как обновить представление формы шага с помощью Ajax в ASP.NETJquery

Программирование на jquery
Ответить
Anonymous
 Как обновить представление формы шага с помощью Ajax в ASP.NET

Сообщение Anonymous »

Это мой способ получить корзину:

Код: Выделить всё

   [HttpGet("/UserPanel/CheckOut")]
public async Task CheckOut()
{

var text = await _siteService.GetSiteSettingForEdit();
var tax = text.Tax;

var userId = User.GetCurrentUserId();

// Get From Session
var cartItems = _orderService.GetFromSession();

// Update ClientId In ShowCart after Login
foreach (var item in cartItems)
{
if (item.ClientId == 0)
{
item.ClientId = userId;
}
}

// Get user addresses
var userAddresses = await _orderService.GetClientContactInfoById(userId);

// we check it in repo and create a list:
//    List cartAddresses = new List();
//so we don't need to check if null, because in repo 100% create a list for it with object, but not null

var deliveryAndPaymentDetails = GetDeliveryAndPaymentDetailsFromSession();
//First get 0/0/1 then after run 2 script it will  be change to the new date

// Create CartViewModel

var cartViewModel = new CartViewModel
{
Items = cartItems,
Tax = tax,
CartAddresses = userAddresses,
CartDeliveryDateViewModel = deliveryAndPaymentDetails

};

await GetStateAndDistricts();

return View(cartViewModel);
}
и я добавляю новый адрес в форму 2 в моей пошаговой форме:

Код: Выделить всё

      [HttpPost]
public async Task AddNewAddress(CartAddressViewModel model, int clientId)
{
await GetStateAndDistricts();
var userId = User.GetCurrentUserId();

var result = await _orderService.CreateNewContactInfoByClient(model, userId);

switch (result)
{
case CreateCartAddressResult.NotFound:
return Json(new { success = false, message = "Address not found." });

case CreateCartAddressResult.AddressIsExists:
return Json(new { success = false, message = "This Address is registered Before" });

case CreateCartAddressResult.Success:

return Json(new { success = true, message = "Address added successfully!", formData = model });

default:
return Json(new { success = false, message = "An unexpected error occurred." });
}
}
после добавления я хочу обновить представление оформления заказа, но просто форму 2.

это мой Ajax после добавления нового адреса. Как бы я ни получил правильные данные в Метод оформления заказа с обновленными данными, но он не отображается в его представлении (на шаге 2)

Код: Выделить всё

  // Handle form submission AddNewAddress Form

$("#addNewAddressContainer").on("submit", "form", function (e) {
e.preventDefault();

var $form = $(this);
var formData = $form.serialize();

$.ajax({
url: $form.attr("action"),
type: $form.attr("method"),
data: formData,
success: function (response) {
if (response.success) {
ShowMessage(response.message); // From My ShowMessage Method
$form.hide();

$('html, body').animate({ scrollTop: 0 }, 'fast');
$('#addressListContainer').empty();

// Update the address list after successful submission
$.ajax({
url: "/UserPanel/CheckOut", // Endpoint to fetch updated checkout page HTML
type: "GET",
success: function (updatedView) {
console.log('Successfully fetched updated checkout page.');
console.log(updatedView); // Log the received HTML for debugging

// Check if updatedView contains the addressListContainer
var updatedAddresses = $(updatedView).find('#addressListContainer').html();
if (updatedAddresses) {
// Update the address list container
$('#addressListContainer').html(updatedAddresses);
} else {
console.error('Updated addresses not found in the received HTML.');
}
},

error: function () {
alert('Error occurred while loading address list.');
}
});
} else {
ShowMessage(response.message);
}
},
error: function () {
ShowMessage('Error occurred while submitting the form.');
}
});
});
что я не так делаю, возвращая новое представление после обновления?

Подробнее здесь: https://stackoverflow.com/questions/786 ... in-asp-net
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Jquery»