1

ASP.NET MVC5 アプリケーションに検索ページがあります。隅にドロップダウンがあり、「ユーザー検索」を選択すると、ユーザーの検索フィルターが表示されます。「タスク検索」を選択すると、タスクの検索フィルターが表示されます。

これらのフィルターは部分ビューに読み込まれ、Ajax.BeginForm. したがって、オプションが選択されると、まったく新しいフォームが読み込まれます。

@using (Ajax.BeginForm("SearchUsers", "Search", "Search_default",
    new AjaxOptions
    {
        HttpMethod = "POST",
        InsertionMode = InsertionMode.Replace,
        UpdateTargetId = "searchResults",
        OnBegin = "StartSpinner",
        OnComplete = "EndSpinner"
    }))
{
//Form
}

searchResultsdiv はページ上にあるため、フォームはメイン ページの div のコンテンツを別の部分ビューの形式のデータで更新しています。

この例のユーザーでは、デフォルトとして設定した検索オプションは問題なく機能します。検索結果が戻ってくると、意図したとおりに div コンテンツを置き換えます。

次に、上記のフォームを、似ているが別のア​​クションを指すフォームに置き換えるものに切り替えるとTask Search、検索結果に対して返される部分ビューが別のページに表示されます。

searchResultsフォームを動的にロードしているためだと考えていますが、divを認識しなくなりましたが、それはうまくいかない可能性があります。これは unobstrusive.ajax.js がロードされていない場合にも発生する可能性がありますが、検索フォームを変更するまで結果は正常に機能します。

4

0 に答える 0