2017-01-14 31 views
0

私は自分のビューに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を使ったことはありません。私はちょうどブログやチュートリアルの助けを借りて試しています。もっと良い方法があれば、これも提案してください。 おかげ

+0

言及 'データ型:AJAX呼び出しに –

+0

#Ranjit – FaHaD

答えて

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

を働いていない「JSON」は'私はあなたの答えの周りにいくつかのより多くのコンテキストを追加喜ばせるためにあなたを要求することができます。コードのみの回答は理解しにくいです。あなたの投稿にさらに情報を追加することができれば、これはAskerと将来の読者に役立ちます。 – RBT

+0

@manikaは動作しません – FaHaD

関連する問題