0
私は、ドロップダウンリストの変更で発生するスクリプト(以下に含まれています)を持つビューを持っていて、イベントハンドラは2つのテキスト入力の値を埋めます。値はコントローラから受信されます。"return Json"の前にMVCが成功しました
問題は、itemstatus
リストに値が設定されるとすぐに、コントローラが戻って表示され、値はAJAX関数に返されません。
私はitemstatus
リストコードを削除し、手動で次のように値を割り当て、それが動作する場合:
var result = new { Quantity = "123", Price = "555"};
それが動作します。
私はコントローラ内でデータを取得する他の方法も試しましたが、結果は同じでした。あなたは私が間違っているの何任意のアイデアを持っていますし、コントローラは
<script type="text/javascript">
$(document).ready(function() {
//Dropdownlist Selectedchange event
$("#dropdown1").change(function()
{
$("#txtQuantity").empty();
$("#txtPrice").empty();
$.ajax(
{
type: 'POST',
url: '@Url.Action("GetValues")',
dataType: 'json',
data: { id: $("#dropdown1").val() },
success: function(data)
{
$("#txtQuantity").val(data.Quantity);
$("#txtPrice").val(data.Price);
}
})
})
});
コントローラー "JSONを返す" の前に表示する戻るなぜ:あなたがあるため
public JsonResult GetValues(int id)
{
List<Item> itemstatus =
(from pd in db.Item
where (pd.itemID == id)
select new Item()
{
itemPrice = pd.itemPrice,
itemQuantity = pd.itemQuantity
}).ToList();
...
more code where i select what i need as a result i have two strings named itemquantity and itemprice
...
var result = new { Quantity= itemquantity, Price = itemprice };
return Json(result, JsonRequestBehavior.AllowGet);
}
申し訳ありませんこれは何を意味するのでしょうか ? ** itemstatusリストがポピュレートされると、コントローラはビューに戻り、値は何もajax関数に返されません**? – Shyju
申し訳ありませんが、十分に明確ではありませんでした。 したがって、できるだけ早くこの行などが実行される: リスト- itemstatus = ()(pd.itemID == ID db.ItemにおけるPDからは、新しいアイテム(){ itemPrice = pd.itemPriceを選択 、 itemQuantity = pd.itemQuantity })。ToList(); コントローラが表示に戻ります。 –
user3809390
これは私が理解していない部分です**コントローラは表示**に戻りますか?どうしてわかるの ?このメソッドは、現在のビューからのajax呼び出しによって実行されます。そのコードが実行されている間は、ブラウザで現在のビューが表示されます。だから、あなたがコントローラーに何を意味するのが見えるか?どちらのビュー?すでにビューが表示されています。 – Shyju