我正在尝试为Orchard CMS创建一个模块。 这个特定的模块有一个列表(FAQS),我希望EditorTemplate是可动态填充的。 单击一个按钮,并为下一个FAQ添加了2个新字段。
这是通过PartialView完成的,该PartialView被列表中的每个问题调用。如果列表中有问题,则可以动态加载。但是,一旦我要添加新问题,它就会停止工作,并告诉我找不到要呈现的页面。
编辑器模板的代码:
<fieldset>
<div style="border: 1px solid black">
<div>
@Html.LabelFor(m => m.Title, T("Title"))
@Html.TextBoxFor(m => m.Title, new { @class = "text medium" })
</div>
<ul id="FAQs" style="list-style-type: none">
@if (Model.FAQList == null || Model.FAQList.Count == 0) {
} else {
<li>FAQS</li>
foreach (FAQ faq in Model.FAQList) {
Html.RenderPartial("FAQItem", faq);
}
}
</ul>
<a id="addAnother" href="#" onclick="test();">Add Question</a>
</fieldset>
还有test()函数
function test() {
$.get('FAQItem', function (data) {
$("#FAQs").append(data);
});
}
EditorTemplate在Views / EditorTemplates / FAQ下,而FAQItem在Views / FAQItem下。
就我所知,测试功能正在尝试从另一个地方请求PartialView,而Html.RenderPartial()会这样做。
答案 0 :(得分:0)
假设我正在阅读此权利,并且$.get('FAQItem',...
可以通过AJAX进行检索,则需要为其提供一个完全合格的URL,其中包括包含FAQItem
的特定控制器。将使用
@Url.Action("FAQItem", "<Controller>", new { area = "<Module>" })