Jak utworzyć panel aktualizacji w ramach ASP.NET Model-View-Contoller (MVC)?Jak zrobić panel aktualizacji w ASP.NET MVC
Odpowiedz
Możesz użyć częściowego widoku w ASP.NET MVC, aby uzyskać podobne zachowanie. Widok częściowy może nadal budować kod HTML na serwerze i wystarczy podłączyć kod HTML do właściwej lokalizacji (w rzeczywistości pomocnicy Ajax MVC mogą ustawić to dla ciebie, jeśli chcesz włączyć biblioteki Ajax MSFT).
W widoku głównym można użyć formularza Ajax.Begin do skonfigurowania żądania asynch.
<% 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>
Widok częściowy zamyka sekcję strony, którą chcesz zaktualizować.
<%@ 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>
Następnie skonfiguruj działanie kontrolera, aby obsłużyć oba przypadki. Wynik częściowego wyświetlenia działa dobrze z żądaniem asych.
public ActionResult Index(string query)
{
var movies = ...
if (Request.IsAjaxRequest())
{
return PartialView("_MovieTable", movies);
}
return View("Index", movies);
}
Nadzieję, że pomaga.
Jeśli jesteś nowy w asp.mvc, zalecamy pobranie przykładowej aplikacji NerdDinner (source). Znajdziesz tam wystarczająco dużo informacji, aby zacząć efektywnie pracować z mvc. Mają także przykłady ajaxowe. Przekonasz się, że nie potrzebujesz i zaktualizuj panel.
Zasadniczo "tradycyjne" kontrole serwera (w tym ASP.NET AJAX) nie będą działać natychmiast po uruchomieniu z MVC ... cykl życia strony jest całkiem inny. Z MVC jesteś renderowania swój strumień HTML znacznie bardziej bezpośrednio niż/pseudo-Stateful polu pobieranej że WebForms otula się.
Aby „symulacyjnej” an UpdatePanel w MVC, można rozważyć podczas wypełniania <DIV>
jQuery w celu osiągnięcia podobny wynik. naprawdę proste, tylko do odczytu przykładem jest this 'search' page
HTML jest prosta:
<input name="query" id="query" value="dollar" />
<input type="button" onclick="search();" value="search" />
dane dla 'panelu' jest w JSON format - MVC może zrobić to automagicznie zobaczyć NerdDinner SearchController.cs
public ActionResult SearchByLocation(float latitude, float longitude) {
// code removed for clarity ...
return Json(jsonDinners.ToList());
}
i jQuery/javascript jest zbyt
<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>
Oczywiście UpdatePanel może być używany w znacznie bardziej złożonych scenariuszach niż ten (może zawierać INPUTS, obsługuje ViewState i wyzwalacze na różnych panelach i innych kontrolkach). Jeśli potrzebujesz tego rodzaju złożoności w swojej aplikacji MVC, obawiam się, że możesz być gotowy do niestandardowego rozwoju ...
co to znaczy część ?? var q = $ ('# query'). attr ("value") lub co to znaczy, gdy umieścisz $ i co oznacza ("#query") oznacza –
@ WingMan20-10, to jest składnia jQuery. '$' jest poprawną nazwą funkcji w jQuery i używa jej.W rzeczywistości wiele innych bibliotek JavaScript również używa '$', więc jeśli łączysz biblioteki, musisz podjąć kroki, aby je rozróżnić, chociaż osobiście nigdy nie używałem w ten sposób wielu bibliotek. –
Jest to jeden z najlepszych i najprostszych ćwiczeń do realizacji UpdatePanel w ASP.NET MVC
- 1. Zrobić Html.ActionLink wokół obrazu w ASP.NET MVC?
- 2. Panel aktualizacji nie aktualizuje zawartości
- 3. Jak zrobić autoryzację w ASP.net MVC 4 już dziś?
- 4. Panel powiadomień podobny do stackoverflow's
- 5. Ajax z Asp.Net MVC?
- 6. Uruchamianie skryptu po panelu aktualizacji AJAX asp.net
- 7. LinkButton w ASP.NET MVC
- 8. Buforowanie w asp.net-mvc
- 9. jQuery CRUD w ASP.NET MVC
- 10. Jak zmienić naprzemienne wiersze w asp.net mvc
- 11. ReturnURL w ASP.NET MVC
- 12. Jak rejestrować nieobsłużone wyjątki w ASP.NET MVC?
- 13. perski kalendarz w MVC Asp.net
- 14. ASP.NET MVC - jak przekierować bezpieczne?
- 15. Jak zapobiec serializacji JSON w ASP.NET MVC?
- 16. Jak utworzyć strukturę rekursywną w ASP.NET MVC
- 17. Jak zaimplementować stronicowanie w ASP.NET MVC?
- 18. Jak zrobić pole tekstowe jako nie edytowalny w asp.net (C#)
- 19. Jak grupować dane w widoku ASP.NET MVC?
- 20. Jak hostować witrynę ASP.NET MVC w podfolderze
- 21. ASP.NET MVC: Mock controller.Url.Action
- 22. ASP.NET MVC i AJAX
- 23. Jak utworzyć webhook w ASP.NET MVC?
- 24. asp.net folder mvc app_data
- 25. ASP.NET MVC TextBoxFor zastępczy
- 26. Automatyczne zapisywanie w MVC (ASP.NET)
- 27. Jak zrobić AuthorizeAttribute w pracy z grupą lokalnych administratorów w aplikacji intranetowej ASP.NET MVC 3?
- 28. Jak zlokalizować aplikację ASP.NET MVC?
- 29. jak zablokować akcję asp.net mvc?
- 30. Jak działa Url.Action Asp.net MVC?
Podoba mi się ta odpowiedź! –