1

这真让我抓狂。我要做的就是将一个 Id 传递给一个正在工作的 ActionMethod 并将一个 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 帮助我解决的类似问题。我需要在我的 getJSON 中添加一个 $.param。查看这篇文章MVC ListBox not passing data to Action

于 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 回答