Ajax.BeginForm メソッドから呼び出すときに PartialView を返すのに問題があります。Ajax 呼び出しは次のとおりです。
@{
ViewBag.Title = "ChargeCode 1";
Layout = "~/Views/Shared/_Search_Layout.cshtml";
}
<div class="span9">
<div class="page-header">
<h1>Charge Code1</h1>
</div>
@using (Ajax.BeginForm("SearchChargeCode1", "ChargeCodeSearch", new AjaxOptions
{
UpdateTargetId = "searchResults",
HttpMethod = "GET",
InsertionMode = InsertionMode.Replace,
}))
{
<input type="text" name="chargeCode1" class="input-medium search-query" />
<input type="submit" class="btn" value="Search" />
<button type="button" class="btn">Clear Results</button>
}
<table id="searchResults">
</table>
</div>
テキスト ボックスにパラメーターを入力した後、[送信] ボタンをクリックすると、ChargeCodeSearchController の SearchChargeCode1 partialviewresult メソッドに移動します。
public PartialViewResult SearchChargeCode1(string chargeCode1)
{
var chargecodes1 = db.ChargeCodes.Where(c => (!(String.IsNullOrEmpty(chargeCode1)) && c.NameChargeCode.Contains(chargeCode1))).Take(10);
return PartialView("ChargeCodeSearch/_FindChargeCodeSearchResults1", chargecodes1);
}
次に、Views フォルダーの次の場所にある _FindChargeCodeSearchResults1 ビューを返す 必要があります。
Views
->Shared
->->ChargeCodeSearch
->->->_FindChargeCodeSearchResults1
そうではありません!
PartialViewMethod にブレークポイントを設定しました。結果のリストをクエリして検索し、chargecodes1 変数に割り当てることはできますが、コードの戻り行をステップ実行した後、Ajax を含むビューに戻るだけで、部分ビューを挿入しません。更新対象「searchResults」に「ChargeCodeSearch/_FindChargeCodeSearchResults1」。
Shared の下に FirmSearch フォルダーと MemberSearch フォルダーがあり、まったく同じ機能を実行しますが、オブジェクトが異なります。それらは機能します。なぜこれが機能しないのかわかりません。
以下は、返されるビュー _FindChargeCodeSearchResult1 のコード スニペットです。この cshtml ビューを作成するときは、PartialView として作成しました。マスター ページを割り当てたり、ChargeCode オブジェクトに厳密に入力したりしませんでした。
@model IEnumerable<MLSMAS.Models.ChargeCode>
<table id="searchResults" class='table table-striped table-bordered table-condensed'>
<thead>
<tr>
<th>ChargeCode ID</th>
<th>ChargeCode Name</th>
<th>ChargeCode Price</th>
<th>Frequency</th>
<th>ChargeCode Description</th>
<th>Select</th>
</tr>
</thead>
<tbody>
@foreach (var item in Model)
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.IdChargeCode)
</td>
<td>
@Html.DisplayFor(modelItem => item.NameChargeCode)
</td>
<td>
@Html.DisplayFor(modelItem => item.Price)
</td>
<td>
@Html.DisplayFor(modelItem => item.Frequency)
</td>
<td>
@Html.DisplayFor(modelItem => item.DescChargeCode)
</td>
<td>
<a href="" onclick="setChargeCode1('@item.IdMember' '@item.Price');" class="setChargeCode1">Select</a>
</td>
</tr>
}
</tbody>
</table>
<script src="../../../Scripts/MLSMASJS.js" type="text/javascript"></script>
どんな助けや提案も大歓迎です。