将对象从Controller传递给JavaScript JQuery

时间:2012-04-14 05:11:04

标签: c# javascript jquery asp.net-mvc

这让我发疯了。我要做的就是将一个Id传递给一个正在运行的ActionMethod并将一个Object返回给javascript。然后在javascript中,我希望能够说出像.Objec.Property,即/ Student.Name或Student.GPA。

感谢任何帮助。我试过json,但也无法让它工作。

的ActionResult:

[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显然是错的我只是不知道如何以正确的方式称呼它。

2 个答案:

答案 0 :(得分:2)

伙计,我有一个达尔文帮助我的类似问题。我需要在我的getJSON中添加$ .param。看看这篇文章MVC ListBox not passing data to Action

答案 1 :(得分: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>