Рендеринг PartialView в EditorTemplate для Orchard CMS - PullRequest
0 голосов
/ 29 ноября 2018

Я пытаюсь создать модуль для Orchard CMS.Этот конкретный модуль имеет список (FAQS), и я хотел, чтобы EditorTemplate был динамически заполняемым.Нажмите кнопку, и 2 новых поля для следующего FAQ будут добавлены.

Это делается через 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 ().

1 Ответ

0 голосов
/ 10 января 2019

Предполагая, что я читаю это право и $.get('FAQItem',... есть для извлечения через AJAX, вам нужно дать ему полный URL-адрес, который включает конкретный контроллер, который содержит FAQItem.Этот URL будет создан с помощью вызова Razor, как

@Url.Action("FAQItem", "<Controller>", new { area = "<Module>" })
...