0
私はASP.NET MVC4(.5)Webアプリケーションを構築しています。 私は問題について多くの話題を取りに行き、それらのすべてを試しましたが、問題は消えませんでした。PartialViewでAjax.ActionLinkが新しいページを開きますMVC4
私はPartialViewを返すコントローラを持っています。
[HttpGet]
public ActionResult Subcategories(int id)
{
IOrderedQueryable<Subcategory> subcategories = this.Data.Subcategories
.All()
.Where(sub => sub.Category.Id == id)
.OrderBy(cat => cat.Name);
var request = this.Request.IsAjaxRequest();
IEnumerable<ConciseSubcategoryViewModel> model = Mapper.Map<IEnumerable<ConciseSubcategoryViewModel>>(subcategories);
return this.PartialView("_Subcategories", model);
}
このバンドルは、_Layoutページの下部にあります。
bundles.Add(new ScriptBundle("~/Content/jquery").Include(
"~/Scripts/jquery-1.10.2.js",
"~/Scripts/jquery.validate.js",
"~/Scripts/jquery.unobtrusive-ajax.js",
"~/Scripts/jquery.validate.unobtrusive.js"));
しかし、私は私のビューのいずれかでAjax.ActionLinkを作成し、それを呼び出したときに、コントローラ内の変数「要求」は値「偽」を持って、要求の原因ではなく、XHRとリターンの文書でありますブラウザの新しいタブの部分的な表示。
おかげで何か間違ったことはありません。 _Categories
ビューで
@model AddItemViewModelBag
@section styles {
<link href="~/Stylesheets/add-item.css" rel="stylesheet" />
}
@{
ViewBag.Title = "Ново изделие";
}
@Html.Partial("_AddItemForm", Model.AddItemBindingModel)
@Html.Partial("_Categories", Model.Categories)
@section scripts{
<script src="~/Scripts/add-item.js"></script>
}
:
@model IEnumerable<ConciseCategoryViewModel>
<div class="category-manager hidden-manager">
<div class="categories-container">
<div class="heading">Изберете категория</div>
<div id="categories-wrapper">
@Html.DisplayForModel()
</div>
</div>
<div class="subcategories-container">
<div id="subcategories-wrapper">
</div>
</div>
</div>
ので
コードは正常です。あなたのページにjsエラーがありますか?ブラウザのコンソールを確認してください – Shyju
問題は、新しいタブに直接リダイレクトされるため、コンソールがリフレッシュされ、エラーが表示されません... – flacko
"ログを保存"を有効にしてリダイレクト間に保持します。 '〜/ Scripts/jquery.unobtrusive-ajax.js'がブラウザに正しくロードされていることを確認してください – Shyju