以下は、ASP MVC ビューで参照している jQuery のバージョンです。
<script src="http://code.jquery.com/jquery-1.8.3.js" type="text/javascript"></script>
<script src="http://code.jquery.com/ui/1.9.2/jquery-ui.js" type="text/javascript"></script>
ウィジェットを使用して、リストautocomplete
からのユーザーの選択に基づいてフォームが別のテキスト ボックスに入力するようにしますautocomplete
。このページで、ユーザーは銀行名の入力を開始します。ユーザーが必要な銀行を選択したら、という名前の別のフィールドDynamics ID
に適切な値を入力する必要があります。これが現在書かれているjQueryです
$(function () {
$("#BankNameAuto").autocomplete({
source: '@Url.Action("GetBanks", "AgentTransmission")',
minLength: 1,
onComplete: function (data) {
$.getJSON('@Url.Action("GetDynamicsId", "AgentTransmission")', data, function (result) {
$('Dynamics').val(result);
})
}
});
});
上記の jQuery で呼び出される 2 つのコントローラー メソッドを次に示します。
//GET
public JsonResult GetBanks(string term)
{
var banks = from c in db.BankListMaster.Where(n => n.BankName.Contains(term))
select c.BankName;
banks = banks.Distinct();
return Json(banks, JsonRequestBehavior.AllowGet);
}
//GET
public JsonResult GetDynamicsId(string term)
{
var dynamics = from c in db.BankListMaster.Where(n => n.BankName.Equals(term))
select c.LinkRepsToDynamicsUniqueId;
dynamics = dynamics.Distinct();
return Json(dynamics, JsonRequestBehavior.AllowGet);
}
ID
ユーザーがリストから選択を行ったら、その値をその銀行に送り返すことができるようにしたいと考えました。BankListMaster
これはテーブルの主キーとして機能し、そのBankName
とDynamicsId
は両方ともフィールドです。ただし、私はまだjQueryを初めて使用するため、これを行うことができない場合があります。
現在、両方のコントローラー メソッドの最初の行にブレークポイントを設定しました。ブレークポイントは毎回起動しますが、GetBanks
まったく起動できませんGetDynamicsId
。
編集
BankName
最初のクエリでフィールドを選択しているだけなのでGetDynamicsId
、銀行名をパラメーターとして使用するようにメソッドを調整しました。