Контроллер возвращает неверные данные с помощью ajax ActionLink в MVC
Несколько дней назад с помощью поиска я поместил кнопку ajax на своей странице, но до сих пор не знал, в чем проблема, дело в том, что полученный мной результат - не результат перенаправления ajax, а результат первой обработки (хотя мне было интересно, зачем он это крутит)...
И что я хочу сделать, это выполнить фильтрацию через кнопку ссылки вместо кнопки.
поэтому у меня есть два действия, одно для моей кнопки ajax, а второе для моего индекса:
1.
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult ChooseCategoryAction(int? id)
{
Monitor.Enter(monitorObj);
// Save code here...
Session.Add("FilterCategory", id);
return RedirectToAction("Index");
}
2.
public override ActionResult Index()
{
.
.
.
int? id = (Session["FilterCategory"] != null) ? int.Parse(Session["FilterCategory"].ToString()) : (int?)null;
List<LinkEntity> filterList = null;
int catId = id ?? -1;
if (catId != -1)
{
filterList = new List<LinkEntity>();
foreach (LinkEntity linkEntity in linkList.Where(
where =>
(catId == 0 && @where.Category == null) ||
(@where.Category != null && @where.Category.Id == catId)).Select(
select =>
new LinkEntity(@select.Id, @select.Name, @select.Link, @select.Description,
@select.Category)))
{
filterList.Add(linkEntity);
}
}
else
{
filterList = linkList;
}
return View(filterList);
}
Мой взгляд таков:
<div class="split-left">
@if (ViewBag.CategoriesTags != null)
{
foreach (var cat in ViewBag.CategoriesTags)
{
<div class="link-item-category">
@using (Html.BeginForm())
{
@Ajax.ActionLink((string)cat.Name, "ChooseCategoryAction","Home", new { id = cat.Id }, new AjaxOptions { HttpMethod = "POST" }, new{@class = "category-link"})
}
</div>
}
}
</div>
Когда я нажимаю на ссылку, она должна перейти к методу Ajax, затем в папку "Входящие", отфильтровать мои данные и вернуть представление, но сначала она переходит в папку "Входящие", затем в папку "Ajax", снова в папку "Входящие", затем она переходит в значение true, но результат, который возврат неверный
Я также, прежде чем перейти к шагу фильтрации, попытался следующее:
@Html.Hidden(((int)cat.Id).ToString())
@Html.ActionLink((string)cat.Name, "ChooseCategoryAction", "Home", null, new { @class = "category-link", onclick = "return false;" })
с помощью следующего скрипта:
<script type="text/javascript">
$(document).ready(function () {
$('.category-link').click(function () {
$(this).closest('form')[0].submit();
});
});
</script>
Но он не возвращается к контроллеру или не обновляет страницу