Ответ 1
Мне кажется, что я не включил jquery.unobtrusive-ajax.min.js
У меня есть следующий код внутри моего контроллера
public ActionResult Index(string searchTerm=null)
{ System.Threading.Thread.Sleep(5000);
var accountdefinition = repository.FindAccountDefinition(searchTerm).ToList();
if (Request.IsAjaxRequest())
{ return PartialView("_CustomerTable",accountdefinition); }
return View(accountdefinition);
}
Но если я вызову вышеуказанный метод действия с помощью Ajax.beginform, тогда Request.IsAjaxRequest вернет false, и частичное представление не будет возвращено
@using (Ajax.BeginForm(
new AjaxOptions{
HttpMethod= "get",
InsertionMode=InsertionMode.Replace,
LoadingElementId = "progress",
UpdateTargetId="customerTable"}))
{
<div style="float:right">Search <input placeholder="Search by name.." name="searchTerm" type="text"> <input class="btn btn-success" type="submit" value="search" /></div>
}
<div id = "progress" class="loadingimage">
<img src="~/Content/Ajax-loader-bar.gif" />
</div>
Мне кажется, что я не включил jquery.unobtrusive-ajax.min.js
Я столкнулся с этой проблемой и не был уверен, что черная магия делает файл jquery.unobtrusive-ajax.min.js
, но для меня это не. Я был счастлив, когда столкнулся с этой сообщением, которая объясняет очень простую проблему.
Автор сообщения заявил, что есть заголовок, который необходимо заполнить.
X-Requested-With => 'XMLHttpRequest'
Для Angular пользователей, которые находят это сообщение, я включил фрагмент сверху post.
var productsApp = angular.module('productsApp', []);
productsApp.config(['$httpProvider', function ($httpProvider) {
$httpProvider.defaults.headers.common["X-Requested-With"] = 'XMLHttpRequest';
}]);
Привет, попробуйте это и измените свое мнение так, как будто это сработает для вас.
@using (Ajax.BeginForm("Index", "controller", null, new AjaxOptions { HttpMethod = "post", InsertionMode = InsertionMode.Replace, LoadingElementId = "progress", UpdateTargetId = "customerTable" }))
{
<div style="float: right">
Search
<input placeholder="Search by name.." name="searchTerm" type="text">
<input class="btn btn-success" type="submit" value="search" /></div>
}