Можно ли загрузить частичное представление, выбрав переключатель в mvc3 - PullRequest
1 голос
/ 15 февраля 2012

Могу ли я использовать радиокнопки для выбора двух разных частичных видов без использования Jquery?

1 Ответ

1 голос
/ 15 февраля 2012

да и нет.частичное может быть загружено только (после начальной загрузки страницы) через ajax, поэтому частичное обновление страницы невозможно без использования ajax.однако, вы можете submit выбранный переключатель (через javascript) для действия контроллера и затем определить внутри контроллера, какой переключатель был выбран.Тогда это был бы случай выбора подходящего вида.

Как я уже сказал, вы не можете пойти по частичному маршруту без ajax в миксе, поэтому ответ - нет.Кроме того, вам все равно придется использовать javascript для использования переключателя при отправке, и в этом случае стоит подумать о решении ajax.

[править] суважение к Splash-X, вот краткая проработка сценария скрытого div:

@*use either @Html.RenderPartial() or @Html.RenderAction() as required*@

<div id="developerDiv" style="display: none">
    This is the developer stuff, in reality, 
    this would be populated as such @*@Html.RenderPartial("DeveloperPartial")*@
</div>
<div id="testerDiv" style="display: none">
    And here we have the testers, again, 
    this would be populated as such @*@Html.RenderPartial("TestersPartial")*@
</div>
<div>
    Developer :@Html.RadioButton("team", "developer", new { onclick = "showResult(this)"}) 
    Tester :@Html.RadioButton("team", "tester", new { onclick = "showResult(this)"})
</div>
<div id="partialContainer"></div>

<script type="text/javascript">
    function showResult(radio) {
        var selected = radio.value;
        if (selected == "developer")
            document.getElementById("partialContainer").innerHTML 
                = document.getElementById("developerDiv").innerHTML;
        else if (selected == "tester")
            document.getElementById("partialContainer").innerHTML 
                = document.getElementById("testerDiv").innerHTML;
    }
</script>

наслаждайтесь ..

...