MVC3 - отображать цену в зависимости от выбора продукта в форме - PullRequest
1 голос
/ 14 ноября 2011

Я уверен, что будут статьи об этом, но я действительно не знаю правильное название для него и с небольшим успехом, находя примеры, подобные моему.

У меня есть форма цитаты, где у вас есть возможность выбрать продукт и его атрибуты. Существует три раскрывающихся списка, и в зависимости от их комбинации у меня есть таблица (со связанной моделью / контроллером), в которой указана цена. Я хочу отобразить цену на странице, но я должен обновить ее по мере обновления выбора.

Установка цены с самого начала казалась простой, но затем ее обновление, основанное на выбранных выпадающих списках, заставило меня пойти полным ходом: «onSelectedIndexChanged ()», javascript, AJAX, частичные представления и я просто запутался.

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

Помощь всегда ценится как всегда.

Спасибо, Стив.

1 Ответ

1 голос
/ 14 ноября 2011

Когда меняется одно из трех выпадающих меню, я выполняю AJAX-вызов на сервер, чтобы получить цену в виде объекта JSON и использовать ее для обновления ввода цены.

Пример использования jQuery для добавления обработчиков и выполнения операции AJAX.

var $priceControls = $('#control1,#control2,#control2');
$priceControls.change( function() {
     $.getJSON( '@Url.Action("price","product")',
                $priceControls.serialize(),
                function(price) {
                    $('#price').val(price);
     });
});

public class ProductController : Controller
{
     public ActionResult Price( string control1, string control2, string control3 )
     {
         decimal price = ...lookup price based on control values...
         return Json( price, JsonRequestBehavior.AllowGet );
     }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...