制作条件以显示局部视图MVC 4

时间:2014-11-18 14:27:48

标签: asp.net-mvc asp.net-mvc-4 razor partial-views

我想在具有共享布局的View中显示PartialView,我想从选择值中呈现此部分。

所以,我想知道如何根据select元素中的选定值从Controller触发视图。

以下是代码:

修改

Administrador.cshtml

  <table border="0" cellspacing="0" cellpadding="0"> 
     <tr>
        <td>Seleccione Cartera:</td>
        <td>
            <select id="SeleccionCartera" name="SeleccionCartera">
                <option value="">Seleccione Cartera</option>
                <option value="0">Activa</option>
                <option value="1">Conservadora</option>
                <option value="2">Moderada</option>
                <option value="3">Nueva</option>
            </select>
        </td>
        <td>
            <button name="btnBuscarRegistros" class="btnExportar">Buscar</button>
        </td>
    </tr>
</table>

<div id="prueba" name="prueba">
    //Here is where my partial displays info.
</div>

Functions.js

$("#SeleccionCartera").change(function () {
   var val = $("#SeleccionCartera").val(); 
   $("#prueba").load('Admin/SeleccionCartera/?value =' + val);
});

AdminController.cs

public ActionResult SeleccionCartera(int id)
    {
        string partial = "";
        if(id==3)
        {
            partial = "_NuevaCartera";
        }
        return PartialView(partial); 
    }

如果用户选择“Nueva”,我想显示PartialView,如果用户选择“Activa”,我想从Controller中显示另一个PartialView(或相同)。

感谢您的帮助!

PD:对不起我的英语,我是智利人。

2 个答案:

答案 0 :(得分:2)

有很多方法可以做到这一点,其中之一是:

设置一个空Div,并使用JQuery的加载函数

<div id="MyPartial">
</div>

$("#MyDDL").change(function () {

    var val = $("#MyDDL").val(); // this should be an int

    $("#MyPartial").load('Home/ViewPartial/?value =' + val);        
});

控制器

  public ActionResult ViewPartial(int value)
    {
        // do stuff          

        return PartialView("_MyPartial",model);    

        // if you want to have a "dynamic" partial view this should work
        //string partialViewName = "name";
        // return PartialView(partialViewName,model);        
    }

答案 1 :(得分:1)

一个想法:

  1. 你可以将你的局部视图放在div中并给它一个Id。
  2. 另外,给你的选择控件一个Id。
  3. 然后创建一个由select元素的onselect事件触发的javascript函数。
  4. 在js函数中检查所选值是否为Nueva?如果不隐藏div
  5. ,则使部分视图div可见
  6. 默认情况下将局部视图div设置为隐藏。
  7. 请查看此类似示例:http://www.rajeeshcv.com/post/details/27/asp-net-mvc-conditional-rendering-partial-views