我有一个类似的模式:在动作结果返回的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