私は自分のビューにTests(Diagnostic)のドロップダウンリストを持っていて、そのリストからTestを選択すると、対応する料金を読み込み専用のテキストボックスにロードする必要があります。ここで は私のビューです:jsonからの戻り値をテキストボックスに割り当てる方法は?
<select name="TestId" id="TestId" style="width: 171px;">
<option value="">Select...</option>
@foreach (var tests in ViewBag.allTests)
{
<option value="@tests.TestId">@tests.TestName</option>
}
</select>
<input type="text" id="TestFee" name="TestFee" readonly="readonly" />
<script>
$(document).ready(function() {
$("#TestId").change(function() {
var testid = $("#TestId").val();
//$("#fees").empty();
var json = { testId: testid };
$.ajax({
type: "POST",
url: '@Url.Action("GetFeesById", "TestRequest")',
contentType: "application/json; charset=utf-8",
data: JSON.stringify(json),
success: function(data) {
$("#TestFee").val(data.Fee);
}
});
});
});
とコントローラがある:
public class TestRequestController : Controller
{
SaveTestManager manager=new SaveTestManager();
public ActionResult SaveTestRequest()
{
ViewBag.allTests = manager.AllTestViews();
return View();
}
[HttpPost]
public JsonResult GetFeesById(int testId)
{
var testlist = manager.AllTestViews().Where(m => testId==m.TestId);
return Json(testlist, JsonRequestBehavior.AllowGet);
}
}
私がするJsonResult上でデバッガを使用し、これは、ドロップダウン項目の変化に対応したデータを返します。しかし、私のテキストボックスは、コントローラから返された料金を取得しません。 このコードに間違いがありますか?どのようにテキストボックスに値を割り当てることができますか? NB:前にJsonを使ったことはありません。私はちょうどブログやチュートリアルの助けを借りて試しています。もっと良い方法があれば、これも提案してください。 おかげ
言及 'データ型:AJAX呼び出しに –
#Ranjit – FaHaD