Ajax.BeginForm resulta no redirecionamento para a visualização parcial em vez de no local

Meu Search.cshtml tem um div chamado “search-results” que deve ser atualizado. SearchResults é o nome da ação. Eu fiz isso muitas vezes em projetos MVC2 / VS2008, mas este é o meu primeiro usando MVC3 e VS2010.

O problema é que, em vez de o resultado da minha pesquisa ser renderizado na minha div, clicar em enviar está me redirecionando para exibir minha parcial como uma página autônoma.

Eu li que isso pode ser porque o Ajax não está ativado. Meu _Layout.cshtml se parece com isso:

   @ViewBag.Title        @(Html.Telerik().StyleSheetRegistrar().DefaultGroup(group => group.Add("telerik.common.css").Add("telerik.transparent.css").Combined(true).Compress(true)))   
@RenderBody()
@(Html.Telerik().ScriptRegistrar().DefaultGroup(group => group.Combined(true).Compress(true)))

Preciso adicionar o MicrosoftMvcAjax.js ou o jquery.unobtrusive-ajax.js? Meu web.config (root) contém o seguinte:

      

Se eu adicionar MicrosoftMvcAjax.js no final do elemento, recebo um erro dizendo que o namespace ‘Tipo’ é o erro indefinido da primeira linha do MicrosoftMvcAjax.js:

  Type.registerNamespace('Sys.Mvc');Sys.Mvc.$create_AjaxOptions=function(){return {};} 

O que estou perdendo aqui. Tenho certeza de que meu código está bem, já que copiou quase todas as texturas dos meus projetos MVC2.

Você esqueceu de include o script jquery.unobtrusive-ajax.js em sua página (ajuste o caminho conforme necessário):

  

No que diz respeito aos scripts Microsoft*.js , eles são obsoletos no ASP.NET MVC 3 e não devem mais ser usados, a menos que você esteja portando algum aplicativo herdado. Eles foram substituídos pelo jQuery.

Ok, descobri o meu problema.

Eu estava chamando Ajax.BeginForm com o AjaxOption OnSuccess pointint para uma function js que atualizou meu espaço reservado. Mas isso não é necessário, com discreta. Depois que eu removi os OnSucces das opções do Ajax, tudo começou a funcionar.

~ S