Как использовать выбранный переключатель для навигации между представлениями в Mvc5

пожалуйста, могу ли я использовать выбранный переключатель для перехода к привязке представления к нему? (Я новичок в MVC)

У меня есть страница, которая содержит 2 переключателя. Я хочу, чтобы код привязывал ее к другому представлению, когда при выборе переключателя и нажатии кнопки ниже вы перейдете к представлению, привязанному к этому конкретному переключателю, иначе вернете ошибку, которую вы должны выберите один из переключателей, например, страницу оплаты с Банковский платеж и электронный платеж, когда выбран переключатель БАНК-ПЛАТЕЖ, затем нажмите кнопку GO, я хочу принести представление, содержащее форму для заполнения банковских реквизитов и аналогичную E-Payment

пожалуйста, я буду признателен за любую помощь, которую вы можете оказать в этом, спасибо заранее...

это мой код MVC5

`

                <div>
                    <h4 class="center">Amount</h4>
                    @Html.TextBoxFor(model => model.Amount, new { @readonly = "readonly"})
                </div>
                <div class="span12"></div>
                <h4 class=" center">Payment Method</h4>
                <div>
                    @Html.RadioButton("PaymentMethod", "/E-Recharge", new { @class = "radio" }) <strong>E-Recharge</strong>
                </div>
                <div>
                    @Html.RadioButton("PaymentMethod", "/Bank", new { @class = "radio" }) <strong>Bank Deposit</strong>
                </div>
                <div class="span5"></div>
                <div class="controls">
                    <input type="submit" class="btn btn-success btn-large btn-block" value="Order" />
                </div>

            </div>
            }
        </div>`

person user3652878    schedule 27.05.2014    source источник


Ответы (1)


Есть много способов достичь своей цели.

Подход №1

Первый подход заключается в добавлении события click на стороне клиента к двум переключателям. Пусть какой-нибудь jQuery определит, какая из двух кнопок была нажата, и вызовет windows.location.href

Этот подход приводит к полному обновлению страницы, поэтому вы должны знать об этом.

Подход № 2

Второй подход чем-то похож на подход №1, но вместо использования windows.location.href просто инициируйте вызов AJAX к вашему контроллеру/ActionResult, который, в свою очередь, вернет частичное представление. Поместите полученный HTML-код частичного представления в <div>, расположенный под переключателями (или где-либо еще).

Этот подход не приводит к полному обновлению страницы, но вызывает вызов AJAX.

Подход №3

Предполагая, что ваше представление строго типизировано на ViewModel. Пока вы заполняете этот ViewModel внутри своего ActionResult, подготовьте обе возможности и визуализируйте обе возможности внутри hidden <div>’s, которые вам просто нужно переключать между .show() и .hide() в зависимости от того, какой переключатель выбран.

Этот подход не вызывает полного обновления страницы и не требует вызова AJAX, потому что вы заранее подготовили обе возможности при заполнении ViewModel.

В зависимости от сложности этих двух возможностей (Views или PartialViews) это может значительно увеличить время, необходимое для правильной загрузки страницы.

Теперь у вас должно быть достаточно информации, чтобы помочь вам принять правильное решение и протестировать эти различные подходы.

person Vlince    schedule 27.05.2014
comment
Большое спасибо, сэр, но я хотел бы увидеть пример кода, пожалуйста... и, пожалуйста, я хочу знать, возможно ли привязать действие к кнопке?? если возможно, пожалуйста, я хотел бы иметь пример того, как это было сделано - person user3652878; 28.05.2014
comment
К сожалению, я не могу показать вам код, потому что не знаю, какой из трех подходов вы выберете. В зависимости от подхода код будет меняться, и я не могу показать вам код для всех из них (у меня нет времени). Но вы можете начать гуглить, как привязать событие клика в jQuery к кнопке отправки, к обычной кнопке или непосредственно к переключателям. Вы найдете множество примеров. это начало - person Vlince; 28.05.2014
comment
хорошо, но я бы предпочел подход № 3 ... в любом случае я проверю в Google, также еще раз спасибо за вашу помощь - person user3652878; 28.05.2014