8

我有一个 jQuery 函数,可以在单击 div 元素时获取该元素的预定义 ID 值。我想要做的是加载父元素的子元素,所以我打算使用 jQuery 动态构建一些 html。我不知道该怎么做,就是调用控制器(ASP.NET MVC 3)并让控制器向客户端返回一个集合。

我知道如何将 JSON 对象从 jQuery 发送到控制器,但不知道如何反过来。

提前致谢!

4

3 回答 3

19

以下是如何将数据从 Controller 发送到 json 的代码:

 $.ajax({
    url: '@Url.Action("GetData", "Home")',
    type: "GET",
    success: function (result) {
        $("#somediv").append(result.FirstName);
        $("#somediv").append(result.LastName);
        $("#somediv").append(result.Age);
    }
});

考虑一个像下面这样的类....

 public class User
 {
     public string FirstName { get; set; }
     public string LastName { get; set; }
 }

你的动作应该是这样的。

public JsonResult GetData()  
{
   User user = new User();
   user.FirstName = "Yasser";
   user.LastName = "Shaikh";
   user.Age = 100;

   return Json(user, JsonRequestBehavior.AllowGet);
}

延伸阅读

于 2012-11-02T19:01:55.610 回答
3

样本:

Javascript:

$.ajax({
        type: 'POST',
        url: '@(Url.Action("SomeAction", "SomeController"))',
        data: someInputData,
        error: OnErrorFunction,
        success: function (data, textStatus, XMLHttpRequest) {
            alert(JSON.stringify(data));
        },
        dataType: "json"
    });

控制器:

public ActionResult SomeAction(InputDataType someInputData)
    {
        if (someInputData== null)
            return null;
        return new JsonResult {Data = SomeOutputData(someInputData)};
    }
于 2012-11-02T15:27:56.113 回答
1

您可以使用 jqueryajax函数和 MVC RazorUrl属性:

$.ajax({
    url: '@Url.Action("Home")',
    type: "GET",
    success: function (data) {
        $("my-div").append(data);
    }
});

success 属性的值是一个带有一个参数的函数:data。这是从您的控制器返回的结果。

于 2012-11-02T15:25:43.447 回答