2014-11-18 1 views
1

Я хочу отобразить PartialView внутри представления с общим макетом, дело в том, что я хочу отобразить это частичное из значения выбора.Сделать условие для отображения частичного представления MVC 4

Итак, я хочу знать, как вызвать представление из контроллера в зависимости от выбранного значения в элементе select.

Вот код:

EDIT

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» Я хочу, чтобы отобразить другой PartialView (или то же самое) от контроллера.

Спасибо за помощь!

PD: Извините за мой английский, я чилийский.

+0

D o хотите ли вы отправить эту страницу, а затем возвратить ту же страницу, которая была отображена с выбранным частичным представлением, или вы хотите отправить запрос с помощью Ajax и вставить html частичного представления на текущую страницу? – Floremin

+0

http://stackoverflow.com/questions/11947540/load-partialview-with-using-jquery-ajax вы хотите использовать ajax-вызов и передать частичное на основе значения, которое вы передаете ему –

ответ

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);   
    } 
+0

Пользователь, я отредактирую свой вопрос, чтобы вставить код, потому что функция не работает, и я не знаю почему! Спасибо за ответ! – Maurinostroza

1

идея:

  1. вы могли бы положить частичный вид в DIV и дать ему Id.
  2. Кроме того, дайте выбранному элементу управления Id.
  3. Затем создайте функцию javascript, которая будет вызвана событием onselect элемента select.
  4. в этой функции js проверить выбранное значение, если это Nueva? затем сделайте частичный вид div видимым, если не скрыть div
  5. установить скрытый скрытый фрагмент части.

пожалуйста, проверьте этот похожий пример: http://www.rajeeshcv.com/post/details/27/asp-net-mvc-conditional-rendering-partial-views

+0

Я делаю это но не работает. Спасибо за Ваш ответ! – Maurinostroza