2010-09-20 75 views
6

Quiero tener dos vistas parciales, una para SEARCH y otra para SEARCHRESULTS.Actualizar una vista parcial desde otra vista parcial - ASP.NET MVC2

Quiero actualizar SEARCHRESULTS cuando se hace clic en el botón "Buscar" en el formulario de vista parcial SEARCH. SEARCHRESULTS necesita tener los datos de formulario alimentados desde la vista parcial SEARCH.

No estoy totalmente seguro de cómo hacerlo. ¿Puedo actualizar la vista parcial de SEARCHRESULTS desde la acción del controlador de mi vista parcial SEARCH?

Respuesta

8

Discusión General
En las vistas patrón de diseño MVC son conscientes el uno del otro. Pueden estar unidos por el concepto de una vista que ensambla múltiples vistas parciales, pero incluso entonces los parciales son ignorantes el uno del otro. Este concepto es cierto para ASP.NET MVC. Mike Brind hace un buen trabajo describiendo parciales y ViewData en su publicación ASP.NET MVC Partial Views and Strongly Typed Custom ViewModels.

específica a su pregunta
Para responder a su pregunta una vista parcial puede tener un enlace a una acción del controlador, que muestra una visión diferente, siempre y cuando la información correspondiente se pasa al controlador. Cómo vas a hacer esto dependerá de lo que trates de hacer.

Dada su pregunta, voy a suponer que la vista parcial SEARCH es un formulario simple con un campo de búsqueda y un botón. Mientras que SEARCHRESULTS es una lista de los datos devueltos. En este caso, crearía una acción de controlador llamada Search que toma un valor de cadena y devuelve solo el SEARCHRESULTS parcial o una vista que contiene el parcial SEARCHRESULTS. Scott Guthrie proporciona una descripción bastante buena de la transferencia de datos a una vista en su publicación de blog Passing ViewData from Controllers to Views.

// returning partial 
public ActionResult Search(string q) 
{ 
    //do search ....... 
    //................. 

    return PartialView("SEARCHREULTS", viewdata); 
} 
Cuestiones relacionadas