2017-01-12 10 views
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> 

ので
+0

コードは正常です。あなたのページにjsエラーがありますか?ブラウザのコンソールを確認してください – Shyju

+0

問題は、新しいタブに直接リダイレクトされるため、コンソールがリフレッシュされ、エラーが表示されません... – flacko

+0

"ログを保存"を有効にしてリダイレクト間に保持します。 '〜/ Scripts/jquery.unobtrusive-ajax.js'がブラウザに正しくロードされていることを確認してください – Shyju

答えて

0

みんな私は、AJAXを作成するビューを戻したときに何が起こるか見て、問題はここにあると思いませんがそしてConciseCategoryViewModel

@model ConciseCategoryViewModel 

<div class="category-option" data-category-id="@Model.Id"> 
    @Ajax.ActionLink(
    Model.Name, 
    "Subcategories", 
    "Items", 
    new { Id = Model.Id }, 
    new AjaxOptions() { 
     HttpMethod = "GET", 
     InsertionMode = InsertionMode.Replace, 
     UpdateTargetId = "subcategories-wrapper" 
    }) 
</div> 

私はそれでもまだ使用できないと思いますe、_Layoutページに含まれています...

関連する問題