我有一個類似的模式:在動作結果返回的EditorTemplate作爲PartialView - ASP.Net MVC 2
public class myModel
{
public ClassA ObjectA {get; set;}
public ClassB ObjectB {get; set;}
}
在我的主要看法,我有類似這樣的標籤:
<div id="section1">
<%=Html.EditorFor(m => m.ObjectA)%>
</div>
<div id="section2">
<%=Html.EditorFor(m => m.ObjectB)%>
</div>
ClassA和ClassB都定義了編輯器模板。
我創建了一些JavaScript,使AJAX調用來重新加載section1 div。我想要action方法返回EditorTemplates文件夾中ObjectA,ClassA.ascx的編輯器。
我有我的行動方法如下:
public ActionResult GetData(int input)
{
// Process input here and create modelData
return PartialView("ClassA", modelData);
}
這給出了一個錯誤,因爲它找不到ClassA的視圖。
我的解決方案是在Views文件夾中創建一個名爲「GetData」的PartialView,然後我的返回呈現GetData視圖。該的GetData圖只有一行代碼:
<%=Html.RenderForModel()%>
這並不工作,但我想知道如果有一個動作方法返回和編輯模板的方法嗎?
感謝您提供的任何建議。
這是行不通的。它仍然無法找到模板。但是,它似乎只搜索了「〜/ EditorTemplates/ClassA.ascx」的位置,我並不期待。 – 2010-03-03 20:33:11
但是,從應用程序根目錄給出完整路徑確實有效。例如,「〜/ Views/MyView/EditorTemplates/ClassA.ascx」。我不知道你可以做到這一點。 – 2010-03-03 20:37:40
有沒有辦法讓視圖呈現模板本身?說'modelData'是'ClassA'類型嗎? – Shimmy 2013-05-02 00:36:36