ASP.net MVC 2.0 アプリケーションに取り組んでいます。Ajaxフォームを使用しています。その中にドロップダウンとボタンがあります。
ボタンをクリックした後、Ajax リクエストが成功した場合、ドロップダウンをリロードしたいと思いました。
そのため、Ajax フォームのコールバック関数内で jquery Ajax 関数を呼び出しています。
その jquery Ajax 関数では、新しいデータを取得するコードを記述し、ドロップダウンにバインドして、新しいデータで再ロードされるようにしています。
ここで、初めてすべてが正常に機能します。しかし、次回ボタンをクリックすると、Ajax jquery関数が呼び出されますが、コントローラーアクションメソッドにはヒットしていません。
コード:
ここに、私のjquery関数があります:
<script type="text/javascript">
function GetData() {
$.getJSON("/Home/GetUsers", null, function (data) {
var selectList = $("#ddlUsers");
selectList.empty();
alert("Inside Get Json method of jquery Ajax");
var defaultoption = $('<option>').text("--Select--").val("");
selectList.append(defaultoption);
$.each(data, function (index, optionData) {
var option = $('<option>').text(optionData.Text).val(optionData.Value);
alert(option);
selectList.append(option);
});
});
}
function Callback() {
GetData();
alert("Sucessfully done");
}
function Failed() {
alert("Sorry, an error occured while processing your request");
}
コントローラー内のメソッド:
[HttpGet]
public JsonResult GetUsers() ----> Method that is called from GetData() Ajax call
{
var data = GetUsersList();
return Json(data, JsonRequestBehavior.AllowGet);
}
public SelectList GetUsersList()
{
Db Fectch
return data;
}
上記のメソッドが 2 回目に呼び出されないのに、GetData() が呼び出される理由を理解できません。
助けてください..