2016-06-29 8 views
0

が動作していないASP.NET MVC Ajaxの例では、私はまさに私がこの<a href="https://app.pluralsight.com/player?author=scott-allen&name=mvc4-building-m6-ajax&mode=live&clip=0&course=mvc4-building" rel="nofollow">module</a>について話しています、pluralsightサイトでスコット・アレンのビデオを見てい

だから、私が作成しました私は追加のappSettingsセクションにWeb.configファイルで

At BoundleConfig.cs file: 
    bundles.Add(new ScriptBundle("~/bundles/otf").Include(
      "~/Scripts/jquery-{version}.js", 
      "~/Scripts/jquery-ui-{version}.js", 
      "~/Scripts/jquery.unobtrusive-ajax.min.js", 
      "~/Scripts/jquery.validate*" 
      )); 

:ビデオで示したが、それは動作していない、私は考え理由を持っていないし、このために探して時間を費やし、ここに私のコードがあるとまったく同じ例:

<add key="UnobtrusiveJavaScriptEnabled" value="true" /> 

そしてここに私達は行く:

public ActionResult Review(string searchString) 
    { 

     var model = _repository.StartDs; 


     if (!String.IsNullOrEmpty(searchString)) 
     { 
      model = model.Where(x => x.FirstName.Contains(searchString)); 
     } 




     if (Request.IsAjaxRequest()) 
     { 
      return PartialView("_Review", model); 
     } 

     return View(model); 

    } 

Review.cshtmlファイル:

@model IEnumerable<nauka.Models.StartData> 
@using(Ajax.BeginForm(
       new AjaxOptions 
       { 
        HttpMethod = "get", 
        InsertionMode = InsertionMode.Replace, 
        UpdateTargetId = "girlsList" 
       })) 
{ 
    <input type="search" name="searchString"/> 
    <input type="submit" value="Znajdź" /> 

} 
    @Html.Partial("_Review", Model) 

_Review.cshtmlファイル:

@model IEnumerable<nauka.Models.StartData> 




<div id="girlsList"> 
    <table style="width:100%"> 

     <tr> 

      <th>ID</th> 
      <th>Imię</th> 
      <th>Nazwisko</th> 
      <th>Wzrost</th> 
      <th>Rozmiar</th> 
      <th>Akcje</th> 



     </tr> 


     @foreach (var item in Model) 
     { 

      <tr> 
       <td>@item.Id</td> 
       <td>@item.FirstName</td> 
       <td>@item.LastName</td> 
       <td>@item.Height</td> 
       <td>@item.TitsSize</td> 
       <td>@Html.ActionLink("Usuń", "Delete", new { id = item.Id })</td> 
      </tr> 



     } 

    </table> 

</div> 

私はこの断片では、それをチェックします私の行動方法:

if (Request.IsAjaxRequest()) 
     { 
      return PartialView("_Review", model); 
     } 

これは決して実行されません。つまり、要求はAjaxRequestとして認識されません。その理由は何ですか?私は、この行を編集したので、それが私のインデックスサイトに私をリダイレクトshloud

return View("Index"); 

を貼り付けたが、それはので、私はAjaxRequestが実行されていないことを証明していませんでした。私はここで欠けているものは分かりませんが、私はビデオのように正確に示しました。 autmaticallyすべてのビューページに追加された私の_Layout.cshtmlファイルの上

<!DOCTYPE html> 
<html> 
<head> 
    <meta charset="utf-8" /> 
    <meta name="viewport" content="width=device-width, initial-scale=1.0"> 
    <title>@ViewBag.Title - My ASP.NET Application</title> 
    @Styles.Render("~/Content/css") 
    @Scripts.Render("~/bundles/modernizr") 


</head> 
<body> 
    <div class="navbar navbar-inverse navbar-fixed-top"> 
     <div class="container"> 
      <div class="navbar-header"> 
       <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse"> 
        <span class="icon-bar"></span> 
        <span class="icon-bar"></span> 
        <span class="icon-bar"></span> 
       </button> 
       @Html.ActionLink("Application name", "Index", "Home", new { area = "" }, new { @class = "navbar-brand" }) 
      </div> 
      <div class="navbar-collapse collapse"> 
       <ul class="nav navbar-nav"> 
        <li>@Html.ActionLink("Home", "Index", "Home")</li> 
        <li>@Html.ActionLink("About", "About", "Home")</li> 
        <li>@Html.ActionLink("Contact", "Contact", "Home")</li> 
        <li>@Html.ActionLink("Dodaj", "Add", "Home")</li> 
        <li>@Html.ActionLink("Przegladaj", "Review", "Home")</li> 
        <li>@Html.ActionLink("Filtruj", "FilterTest", "Home")</li> 


       </ul> 
       @Html.Partial("_LoginPartial") 
      </div> 
     </div> 
    </div> 
    <div class="container body-content"> 
     @RenderBody() 
     <hr /> 
     <footer> 
      <p>&copy; @DateTime.Now.Year - My ASP.NET Application</p> 
     </footer> 
    </div> 

    @Scripts.Render("~/bundles/otf") 
    @RenderSection("scripts", required: false) 
</body> 
</html> 
+0

'if(Request.IsAjaxRequest())の中にコードを置かないと、通常のリダイレクトを行うことになります。ビューにスクリプトが正しくレンダリングされていることを確認します(バンドルを表示していますが、ビューに表示する場所が表示されていません) –

+0

_Layout.cshtmlファイルの末尾に@ Scripts.Render( "〜/ bundles/otf ") –

+0

すべてのjquery refrencesファイルをかみそりページに追加しますか? –

答えて

0

Ough ...解決!

私はNuGetパッケージインストーラを使用して私の解決策に

jquery.unobtrusive-ajax.min.jsライブラリを追加しませんでした。 しかしこれを以前にBoudleConfigに追加したとき(パス "〜/ Scripts/jquery.unobtrusive-ajax.min.js")、なぜこのライブラリが私のプロジェクトでVisualに存在していないと叫んでいませんでしたか? ! 多くの複雑なことがありました。

関連する問題

 関連する問題