2010-12-29 19 views
12

Estoy intentando cargar una vista parcial en un div desde una vista de llamada, sin embargo, la vista parcial se carga en una página nueva. No hay mucho código y he intentado varias formas de desde otras publicaciones, pero aún se carga en una página nueva. Entonces creo que me podría estar perdiendo algo fundamental.Cargar vista parcial en div

controlador

[AcceptVerbs(HttpVerbs.Get)] 
public ActionResult Index() 
{ 
    return View(); 
} 

public ActionResult Test() 
{ 
    return PartialView("Test"); 
} 

Ver

<script src="../../Scripts/MicrosoftAjax.js" type="text/javascript"></script> 
<script src="../../Scripts/MicrosoftMvcAjax.js" type="text/javascript"></script> 

@using (Ajax.BeginForm("Test", "Home", new AjaxOptions { InsertionMode=InsertionMode.Replace, UpdateTargetId = "mydiv" })) 
{  
    @Ajax.ActionLink("Save", "Test", "Home", new AjaxOptions{ }); 
} 

<div id="mydiv"> 
    @Html.Partial("Test") 
</div> 

PartialView

<h1>Test</h1> 
+2

aceptan una de las respuestas. –

Respuesta

0

Sus necesidades parciales a ser el ingenio hin forma ajax

+1

Estoy comprobando Request.IsAjaxRequest() en el controlador y vuelve como falso. El formato de marcado es esto.

user415394

24

par de comentarios acerca de su código:

  • Ajax.* ayudantes en ASP.NET MVC 3 RC2 ya no usar MS AJAX que ha quedado en desuso en favor de jQuery, por lo que sus inclusiones de guión están equivocados . Debe incluir jquery
  • Tiene un formulario ajax sin un botón de enviar y un enlace ajax dentro de este formulario. Esto no tiene sentido. O use una forma ajax o un enlace ajax.

lo que el código podría ser algo entre las líneas:

<script src="@Url.Content("~/scripts/jquery-1.4.4.js")" type="text/javascript"></script> 

@Ajax.ActionLink("Save", "Test", "Home", new AjaxOptions { 
    InsertionMode = InsertionMode.Replace, 
    UpdateTargetId = "mydiv" 
}) 

<div id="mydiv"> 
    @Html.Partial("Test") 
</div> 
12

añadir esta línea a su página (página maestra o el diseño)

<script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.js")" type="text/javascript"></script> 

justo después de la línea MicrosoftMvcAjax.js.

+1

Estaba luchando con esto y esta respuesta resolvió mi problema. ¡Gracias! – Stephane

1

creo que se debe utilizar <input type="submit" /> en lugar de @Ajax.Actionlink(...)

en MVC4 puede agregar paquete @Scripts.Render("~/bundles/jqueryval") justo después @Scripts.Render("~/bundles/jquery") o añadir referencia de script en la sección de guión en vista de la página, como se muestra a continuación:

@section scripts 
    { 
    <script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.js")" type="text/javascript"></script> 

    } 

buena suerte .

Cuestiones relacionadas