Mam modelu podobnego do tego:Zwracanie EditorTemplate jako PartialView w Wynik działania - ASP.Net MVC 2
public class myModel
{
public ClassA ObjectA {get; set;}
public ClassB ObjectB {get; set;}
}
w moim głównym widoku mam tagów podobny do tego:
<div id="section1">
<%=Html.EditorFor(m => m.ObjectA)%>
</div>
<div id="section2">
<%=Html.EditorFor(m => m.ObjectB)%>
</div>
KlasyA i ClassB mają zdefiniowane szablony edytora.
Utworzono trochę kodu JavaScript, który wykonuje wywołanie AJAX w celu przeładowania sekcji div div. Chcę, aby metoda akcji zwróciła edytor dla ObjectA, ClassA.ascx, który znajduje się w folderze EditorTemplates.
Mam następujących w moim metody działania:
public ActionResult GetData(int input)
{
// Process input here and create modelData
return PartialView("ClassA", modelData);
}
To daje błąd, ponieważ nie można znaleźć widoku ClassA.
Moje rozwiązanie polegało na utworzeniu częściowego widoku w folderze Widoki o nazwie "GetData", a mój powrót renderuje widok GetData. Widok GetData ma tylko jedną linię kodu:
<%=Html.RenderForModel()%>
Poniższe działa, ale zastanawiałem się, czy istnieje sposób na metody działania do powrotu i edytora szablonów?
Dzięki sugestiom, które możesz podać.
To nie działa. Nadal nie może znaleźć szablonu. Wygląda jednak na to, że przeszukał tylko lokalizację "~/EditorTemplates/ClassA.ascx", czego się nie spodziewałam. –
Jednak podanie pełnej ścieżki z katalogu głównego aplikacji działa. Na przykład "~/Views/MyView/EditorTemplates/ClassA.ascx". Nie wiedziałem, że możesz to zrobić. –
Czy istnieje sposób, aby widok renderował sam szablon? Powiedz, czy 'modelData' jest typu' ClassA'? – Shimmy