是否可以通过在mvc3中选择单选按钮来加载局部视图

时间:2012-02-15 19:43:08

标签: asp.net-mvc-3 c#-4.0 radio-button

我可以使用单选按钮选择两个不同的局部视图,而不使用Jquery吗?

1 个答案:

答案 0 :(得分:1)

是的,没有。部分只能通过ajax加载(在初始页面加载后),因此如果不使用ajax,则无法进行部分页面刷新。但是,您可以submit所选单选按钮(通过javascript)到控制器操作,然后在控制器内确定选择了哪个单选按钮。然后就是选择适当的视图。

正如我所说的,如果没有混合中的ajax你就不能走下局部路线,所以答案是否定的。此外,你仍然必须使用javascript来使用提交中的单选按钮,在这种情况下,ajax解决方案可能值得考虑。

[edit] 依赖于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>

享受..