如何将json的返回值分配到文本框中?

时间:2017-01-14 06:54:02

标签: c# asp.net 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上使用了Debugger,它在下拉项的更改时返回相应的数据。但是,我的文本框没有从控制器返回的费用。 这段代码有什么问题吗?如何在文本框上分配值? NB:我之前从未使用过Json,我只是在一些博客和教程的帮助下尝试。如果有更好的方法,请同时提出建议。 感谢

1 个答案:

答案 0 :(得分:0)

Try this 
$("#TestFee").val(data.data[0].Fee);