1

これは私を夢中にさせています。私がやろうとしているのは、動作している ActionMethod に Id を渡し、Object を JavaScript に返すことだけです。次に、javascript で、..Objec.Property、つまり Student.Name、または Student.GPA のようなことを言えるようにしたいと考えています。

どんな助けでも大歓迎です。json を試しましたが、それも機能しませんでした。

アクション結果:

[AcceptVerbs(HttpVerbs.Get)]
public Epic GetEpicPropertyDetails(int id)
{  
   var Epictemplist = epicRepository.Select().Where(x => x.Id.Equals(id));
   return Epictemplist.SingleOrDefault();
}

JavaScript:

<script type="text/javascript">
   $(document).ready(function () {
     $(".ListBoxClass").click(function (event) {
       var selectedid = $(this).find("option:selected").val();
       event.preventDefault();
       $.get("/Estimate/GetEpicPropertyDetails", { id: selectedid }, function (result) {
         $(".TimeClass").val(result);
       });
     });
   });
</script>

result.Name明らかに間違っています。これを正しい方法と呼ぶ方法がわかりません。

4

2 に答える 2

2

Tman、Darinが助けてくれた同様の問題がありました. $.param を getJSON に追加する必要がありました。この投稿を確認してくださいMVC ListBoxがデータをアクションに渡さない

于 2012-04-14T06:58:33.923 に答える
1

このようにメソッドを変更してみてください

[AcceptVerbs(HttpVerbs.Get)]
public JsonResult GetEpicPropertyDetails(int id)
{  
  var Epictemplist = epicRepository.Select().Where(x => x.Id.Equals(id)).SingleOrDefault();
  return Json(Epictemplist, JsonRequestBehavior.AllowGet);
}

あなたのJSよりも

<script type="text/javascript">
$(document).ready(function () {
  $(".ListBoxClass").click(function (event) {
    var selectedid = $(this).find("option:selected").val();
    event.preventDefault();
    $.get("/Estimate/GetEpicPropertyDetails", { id: selectedid }, function (result) {
      $(".TimeClass").val(result.Name);
    }, 'json');
  });
});
</script>
于 2012-04-14T05:23:00.480 に答える