¿Cómo puedo crear un panel de actualización en el marco ASP.NET Model-View-Contoller (MVC)?Cómo hacer el panel de actualización en ASP.NET MVC
Respuesta
Puede usar una vista parcial en ASP.NET MVC para obtener un comportamiento similar. La vista parcial aún puede construir el HTML en el servidor, y solo necesita enchufar el HTML en la ubicación correcta (de hecho, los ayudantes de MVC Ajax pueden configurar esto para usted si está dispuesto a incluir las bibliotecas Ajax de MSFT).
En la vista principal, puede usar el formulario Ajax.Begin para configurar la solicitud de asincronización.
<% using (Ajax.BeginForm("Index", "Movie",
new AjaxOptions {
OnFailure="searchFailed",
HttpMethod="GET",
UpdateTargetId="movieTable",
}))
{ %>
<input id="searchBox" type="text" name="query" />
<input type="submit" value="Search" />
<% } %>
<div id="movieTable">
<% Html.RenderPartial("_MovieTable", Model); %>
</div>
Una vista parcial encapsula la sección de la página que desea actualizar.
<%@ Control Language="C#" Inherits="ViewUserControl<IEnumerable<Movie>>" %>
<table>
<tr>
<th>
Title
</th>
<th>
ReleaseDate
</th>
</tr>
<% foreach (var item in Model)
{ %>
<tr>
<td>
<%= Html.Encode(item.Title) %>
</td>
<td>
<%= Html.Encode(item.ReleaseDate.Year) %>
</td>
</tr>
<% } %>
</table>
Luego configure la acción de su controlador para manejar ambos casos. Un resultado de vista parcial funciona bien con la solicitud asych.
public ActionResult Index(string query)
{
var movies = ...
if (Request.IsAjaxRequest())
{
return PartialView("_MovieTable", movies);
}
return View("Index", movies);
}
Espero que ayude.
Si es nuevo en asp.mvc, le recomendamos que descargue la aplicación de ejemplo NerdDinner (source). Allí encontrará suficiente información para comenzar a trabajar eficazmente con mvc. También tienen ejemplos de ajax. Descubrirá que no necesita y actualizar el panel.
Básicamente los controles de servidor 'tradicionales' (incluidos los ASP.NET AJAX) no funcionarán de fábrica con MVC ... el ciclo de vida de la página es bastante diferente. Con MVC se renderiza el torrente de HTML y mucho más directamente que la caja abstracta/pseudo-stateful que WebForms se envuelve en.
Para 'simular' un UpdatePanel en MVC, es posible considerar llenar una <DIV>
usando jQuery para lograr una resultado similar Un ejemplo realmente simple, de sólo lectura está en this 'search' page
El HTML es simple:
<input name="query" id="query" value="dollar" />
<input type="button" onclick="search();" value="search" />
Los datos para el 'Panel' es en JSON format - MVC puede hacer esto automágicamente ver NerdDinner SearchController.cs
public ActionResult SearchByLocation(float latitude, float longitude) {
// code removed for clarity ...
return Json(jsonDinners.ToList());
}
y el jQuery/javascript es demasiado
<script type="text/javascript" src="javascript/jquery-1.3.2.min.js"></script>
<script type="text/javascript">
// bit of jquery help
// http://shashankshetty.wordpress.com/2009/03/04/using-jsonresult-with-jquery-in-aspnet-mvc/
function search()
{
var q = $('#query').attr("value")
$('#results').html(""); // clear previous
var u = "http://"+location.host+"/SearchJson.aspx?searchfor=" + q;
$("#contentLoading").css('visibility',''); // from tinisles.blogspot.com
$.getJSON(u,
function(data){
$.each(data, function(i,result){
$("<div/>").html('<a href="'+ result.url+'">'+result.name +'</a>'
+'<br />'+ result.description
+'<br /><span class="little">'+ result.url +' - '
+ result.size +' bytes - '
+ result.date +'</span>').appendTo("#results");
});
$("#contentLoading").css('visibility','hidden');
});
}
</script>
Por supuesto, UpdatePanel se puede utilizar en escenarios mucho más complejos que este (puede contener ENTRADAS, admite ViewState y desencadenadores en diferentes paneles y otros controles). Si necesita ese tipo de complejidad en su aplicación MVC, me temo que podría estar buscando desarrollo personalizado ...
¿qué significa esta parte ?? var q = $ ('# query'). attr ("value") o qué significa cuando pones $ y qué significa ('#query') significa –
@ WingMan20-10, eso es la sintaxis de jQuery. '$' es un nombre de función válido en jQuery, y lo usan.De hecho, muchas otras bibliotecas de JavaScript también usan '$', por lo que si combina bibliotecas, debe tomar medidas para eliminar la ambigüedad, aunque personalmente nunca he usado varias bibliotecas de esta manera. –
Ésta es una de las mejores y más simples tutoriales para implementar UpdatePanel de ASP.NET MVC
- 1. actualización automática en ASP.NET MVC
- 2. actualización Panel fila equivocada
- 3. Ejecutando script después del panel de actualización AJAX asp.net
- 4. Ejecutar javascript desde el panel de actualización en cada actualización
- 5. Un panel de actualización frente a varios paneles de actualización
- 6. Panel de actualización de ASP.NET dentro del panel oculto error posible
- 7. ¿Cómo hacer zonas horarias en ASP.NET MVC?
- 8. Problema de actualización Asp.NET MVC Html.TextBox
- 9. Hacer que el Panel de progreso de actualización esté en el centro
- 10. ASP.Net: Panel de actualización asíncrona de carga con dos paneles de actualización
- 11. ASP.NET inyectar javascript en control de usuario anidado en el panel de actualización
- 12. El panel de actualización de ASP.NET detiene la ejecución de jquery en
- 13. ASP.NET MVC 3, cómo hacer temas bien
- 14. Problema al utilizar el control FileUpload de ASP.NET en un Panel de actualización?
- 15. No se puede hacer que AsyncFileUpload funcione en el panel de actualización
- 16. ¿Cómo puedo agregar una clase css a un panel de actualización en ASP.Net?
- 17. ¿Cómo hacer peticiones AJAX de larga consulta en ASP.NET MVC?
- 18. Ejecutando Javascript después de actualizar el panel de actualización
- 19. ASP.NET - panel de actualización en la página principal botón, refrescarse en Contenido
- 20. cómo activar el panel de actualización dentro de una función de Javascript
- 21. ¿Cómo debo hacer la autenticación en un sitio ASP.Net MVC?
- 22. ¿Cómo puedo hacer "causesvalidation = false" en ASP.NET MVC 2?
- 23. Actualización de AppSettings a través del Controlador MVC de ASP.NET
- 24. ID de objetivos de actualización múltiple con Ajax.ActionLink ASP.Net MVC
- 25. ¿Cómo hacer cuentas estilo Basecamp en Asp.Net Mvc?
- 26. ¿Cómo hacer que ASP.NET MVC funcione en IIS 6?
- 27. ¿Cómo crear una interfaz de usuario de panel con ASP.NET MVC?
- 28. Cómo hacer que un TextBox de ASP.NET se active, ¿está activado el evento de cambio de texto en un Panel de actualización de AJAX?
- 29. ASP.Net: Necesita ejecutar javascript en la carga del panel de actualización completada
- 30. Panel de actualización no está actualizando el contenido
¡Me gusta esta respuesta! –