Ответ 1
Проблема была в моих скриптах. Хотя я добавил ненавязчивый-ajax.min.js, но он был поврежден. Затем я переустановил его из пакета nuget.
PM> Install-Package Microsoft.jQuery.Unobtrusive.Ajax -Version 3.2.2
Я хочу заменить div на вид, используя @Ajax.actionLink, когда я нажимаю на эту ссылку. Но он не работает.
вот моя ссылка
<div>
<li> @Ajax.ActionLink("settings","Create","Test",
new AjaxOptions { UpdateTargetId = "components" , InsertionMode = InsertionMode.Replace}
) </li>
</div>
и мой целевой div
<div id="components">
</div>
Я также включил js файл в макет, подобный этому
<script src="~/Scripts/Controls/jquery-2.0.3.min.js"></script>
<script src="~/Scripts/jquery.unobtrusive-ajax.min.js"></script>
<script src="~/Scripts/jquery.validate.min.js"></script>
<script src="~/Scripts/jquery.validate.unobtrusive.min.js"></script>
<script src="~/Scripts/modernizr-2.5.3.js"></script>
и мой результат действия
public PartialViewResult Create()
{
return PartialView("Create");
}
Проблема была в моих скриптах. Хотя я добавил ненавязчивый-ajax.min.js, но он был поврежден. Затем я переустановил его из пакета nuget.
PM> Install-Package Microsoft.jQuery.Unobtrusive.Ajax -Version 3.2.2
Для тех, кто установил Microsoft.jQuery.Unobtrusive.Ajax(пронумеровать nu-get или нет) и хотите использовать его через комплект, не забывайте:
Чтобы добавить библиотеку в свой пакет bundleconfig. Например:
bundles.Add(new ScriptBundle("~/bundles/unobtrusive").Include(
"~/Scripts/jquery.unobtrusive*"));
Чтобы отобразить его (моя отображается в _Layout.cshtml):
@Scripts.Render( "~/связки/ненавязчивые" )
Я знаю его старый пост, но не могу обидеть, чтобы добавить дополнительную информацию, я думаю.
Верьте или нет, я правильно настроил все, кроме одного:
Чтобы установить Microsoft jQuery Unobtrusive Ajax, запустите следующие команды в консоли диспетчера пакетов:
PM> Install-Package Microsoft.jQuery.Unobtrusive.Ajax -Version 3.2.2
Инструкции здесь: https://www.nuget.org/packages/Microsoft.jQuery.Unobtrusive.Ajax/
может быть он для пакета nuget. Установите его на
PM> Install-Package Microsoft.jQuery.Unobtrusive.Ajax -Version 3.2.2
Когда вы пишете new AjaxOptions{ --- }
, вместо этого напишите его как:
new AjaxOptions() { .... } and write HttpMethod also in ajaxoptions.
Правильное использование ajax.actionlink:
@Ajax.ActionLink("Text", // <-- Text to display
"Action method", // <-- Action Method Name
"Controller Name" // <--Controller Name
new AjaxOptions()
{
UpdateTargetId="CustomerList", // <-- DOM element ID to update
InsertionMode = InsertionMode.Replace, // <-- Replace the content of DOM element
HttpMethod = "GET" // <-- HTTP method(Post/Get)
})
Если это MVC5? Убедитесь, что вы включили правильный ненавязчивый пакет ajax т.е. вы можете установить консоль менеджера пакетов NuGet с последним пакетом
Установочный пакет Microsoft.jQuery.Unobtrusive.Ajax
После установки последнего он начал работать для меня.