Как да използвам избран радио бутон за навигация между изгледи в Mvc5

моля, мога ли да използвам избран бутон за избор, за да навигирам в изгледа, обвързан с него? (нов съм в MVC)

Имам страница, която съдържа 2 бутона за избор, искам да кодирам обвързване към различен изглед, който, когато е избран бутон за избор и след това щракнете върху бутона по-долу, ще ви отведе до обвързването на изгледа към този конкретен бутон за избор, иначе връща грешка, която трябва изберете един от бутоните за избор, напр. страница за плащане, която има Банково плащане и електронно плащане, когато е избран радио бутонът БАНКОВО ПЛАЩАНЕ, след това щракнете върху бутон GO, искам да донеса изглед, който съдържа формуляр за попълване на банковите данни и същото като електронното плащане

моля, ще оценя всяка помощ, която можете да предоставите по този въпрос, благодаря предварително...

това е моят 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

Първият подход е да прикачите събитие за щракване от страната на двата радио бутона. Нека някой jQuery разбере кой от двата бутона е бил щракнат и да задейства windows.location.href

Този подход води до пълно опресняване на страницата, така че трябва да сте наясно с това.

Подход №2

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

Този подход не води до пълно опресняване на страницата, но предизвиква AJAX извикване.

Подход №3

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

Този подход не води до пълно опресняване на страницата, нито се нуждае от AJAX извикване, защото вие предварително сте подготвили и двете възможности, докато попълвате вашия ViewModel.

В зависимост от сложността на тези две възможности (Изгледи или Частични изгледи), това може драстично да увеличи времето, необходимо на страницата да се зареди правилно.

Вече трябва да разполагате с достатъчно информация, която да ви помогне да вземете правилното решение и да изпробвате тези различни подходи.

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