MVC4 Ajax.BeginForm não substituindo UpdateTargetId
Há tantos tópicos sobre o SO sobre problemas com o Ajax.BeginForm que não atualiza corretamente o elemento de destino com a exibição parcial de retorno:
mvc4 ajax atualizando a mesma página
ASP.NET MVC 4 - Ajax.BeginForm e html5
MVC 4 (navalha) - O controlador está retornando uma visualização parcial, mas a página inteira está sendo atualizada
MVC 4 Ajax não está atualizando o PartialView dentro da página
No entanto, todos eles são respondidos manualmente ou escrevendo o jjaja ajax, ou incluindo um arquivo javascript ausente.
@using (Ajax.BeginForm("PostcardDetails", new AjaxOptions()
{
InsertionMode = InsertionMode.Replace,
UpdateTargetId = "details"
}))
{
<div id="PostcardSearchResults">
@{Html.RenderAction("PostcardSearchResults", Model);}
</div>
}
<div id="details">
</div>
Código do controlador relevante:
[AcceptVerbs(HttpVerbs.Post | HttpVerbs.Get)]
public ActionResult PostcardSearchResults(PostcardSearchFilter filter)
{
PostcardSearchResults model = new PostcardSearchResults(filter);
return PartialView("_PostcardSearchResults", model);
}
No meu layout, estou fazendo referência a esses arquivos jQuery. Além disso, verifiquei que a página está exibindo o caminho correto e que ele encontra os arquivos corretos. Eu tentei mudar a ordem deunobtrusive-ajax.min.js
evalidate.min.js
, sem sucesso.
<script type="text/javascript" src="@Url.Content("~/Scripts/globalize.js")"></script>
<script type="text/javascript" src="@Url.Content("~/Scripts/jquery-1.9.1.js")"></script>
<script type="text/javascript" src="@Url.Content("~/Scripts/jquery-ui-1.10.0.custom.min.js")"></script>
<script type="text/javascript" src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.min.js")"></script>
<script type="text/javascript" src="@Url.Content("~/Scripts/jquery.validate.min.js")"></script>
<script type="text/javascript" src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")"></script>
Além disso, no web.config raiz do meu site e no web.config da minha pasta View, incluí:
<add key="webpages:Version" value="2.0.0.0"/>
<add key="PreserveLoginUrl" value="true"/>
<add key="ClientValidationEnabled" value="true"/>
<add key="UnobtrusiveJavaScriptEnabled" value="true"/>
Eu estou em uma perda de onde mais procurar. Não há erros de javascript sendo lançados e o controlador está sendo atingido corretamente, retornando um PartialViewResult. O elemento Form no HTML está preenchendo todas as informações corretasdata-
atributos.