Я знаю, что подобные вопросы задавались и отвечали несколько раз; из-за своей жизни я не могу определить, чего мне не хватает, пожалуйста, потерпите меня.
Я пытаюсь загрузить частичное представление с помощью редактора для элемента на странице и отображать этот редактор в качестве модального загрузчика, но он всегда загружается на новую страницу.
_Layout.cshtml
ссылается на пакет jQuery:
@Scripts.Render("~/bundles/jquery")
`BundleConfig.RegisterBundles () добавляет jQuery и ненавязчивый ajax:
bundles.Add(new ScriptBundle("~/bundles/jquery")
.Include("~/Scripts/jquery-{version}.min.js") // <-- must come first
.Include("~/Scripts/jquery.unobtrusive-ajax.min"));
Папка Scripts
содержит оба файла:
![Scripts Folder screenshot showing both files](https://i.stack.imgur.com/7GbUs.png)
В View
есть пустой div
с правильным id
для получения содержимого
<div id="editor"></div>
Я построил ActionLink
таким образом:
@Ajax.ActionLink(linkText: "Edit",
actionName: "GetEditor",
routeValues: new {id = Model.Id},
ajaxOptions: new AjaxOptions
{
OnSuccess = "showEditor",
UpdateTargetId = "editor",
InsertionMode = InsertionMode.Replace,
HttpMethod = "POST"
})
Моя функция JS просто показывает модальное значение:
function showEditor() { $("#editor").modal("show"); };
... и чтобы посмотреть, смогу ли я заставить его работать, я возвращаю простую строку из моего контроллера:
public ActionResult GetEditor(string id) => Content("Success");
Редактировать 1
В моем файле web.config я включил как проверку на стороне клиента, так и ненавязчивую js:
<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />
Редактировать 2
Я попытался обновить без использования кэша (Ctrl+F5
) с тем же результатом, и инструменты dev не показывают ошибок JavaScript. Я получаю одинаковые результаты во всех браузерах.
Что я забыл?