По сути, «традиционные» серверные элементы управления (включая ASP.NET AJAX) не будут работать «из коробки» с MVC ... жизненный цикл страницы довольно сильно отличается. С MVC вы визуализируете свой Html-поток гораздо более напрямую, чем абстрагированный / псевдо-сохраняющий текст блок, в который вас оборачивает WebForms.
Чтобы «имитировать» UpdatePanel в MVC, вы можете подумать о заполнении <DIV>
с использованием jQuery для достижения аналогичного результата. действительно простой пример только для чтения находится на этой странице "поиска"
HTML прост:
<input name="query" id="query" value="dollar" />
<input type="button" onclick="search();" value="search" />
Данные для «панели» представлены в формате JSON - MVC может сделать это автоматически, см. NerdDinner SearchController.cs
public ActionResult SearchByLocation(float latitude, float longitude) {
// code removed for clarity ...
return Json(jsonDinners.ToList());
}
и jQuery / javascript тоже
<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>
Конечно, UpdatePanel может использоваться в гораздо более сложных сценариях, чем этот (он может содержать INPUTS, поддерживает ViewState и запускается на разных панелях и других элементах управления). Если вам нужна такая сложность в вашем приложении MVC, я боюсь, что вы можете заняться какой-то индивидуальной разработкой ...