tengo un modelo similar a esto:Devolución de un EditorTemplate como PartialView en una Acción Resultado - ASP.Net MVC 2
public class myModel
{
public ClassA ObjectA {get; set;}
public ClassB ObjectB {get; set;}
}
En mi vista principal, tengo etiquetas similares a esta:
<div id="section1">
<%=Html.EditorFor(m => m.ObjectA)%>
</div>
<div id="section2">
<%=Html.EditorFor(m => m.ObjectB)%>
</div>
ClassA y ClassB tienen plantillas de Editor definidas.
Creé algunos JavaScript que hacen una llamada AJAX para volver a cargar la sección1 div. Quiero que el método de acción devuelva el editor para ObjectA, ClassA.ascx que está en la carpeta EditorTemplates.
Tengo el siguiente en mi método de acción:
public ActionResult GetData(int input)
{
// Process input here and create modelData
return PartialView("ClassA", modelData);
}
Esto da un error porque no puede encontrar el punto de vista claseA.
Mi solución ha sido crear un PartialView en la carpeta Views llamado "GetData" y mi retorno representa la vista GetData. La vista GetData tiene una sola línea de código:
<%=Html.RenderForModel()%>
Este trabajo hace, pero me preguntaba si había una manera para que un método de acción para volver y editor de plantillas?
Gracias a cualquier sugerencia que pueda proporcionar.
que no funciona. Todavía no puede encontrar la plantilla. Sin embargo, parece que solo buscó en la ubicación "~/EditorTemplates/ClassA.ascx", que no estaba esperando. –
Sin embargo, dar la ruta completa desde la raíz de la aplicación funciona. Por ejemplo, "~/Views/MyView/EditorTemplates/ClassA.ascx". No sabía que podrías hacer esto. –
¿Hay alguna manera de hacer que la vista represente la plantilla? Di si 'modelData' es del tipo' ClassA'? – Shimmy