将一个对象从javascript发送到View

时间:2013-06-23 12:47:11

标签: c# javascript asp.net-mvc

我有一个名为myvariable的变量,它有一些元素(id,name等)

在我的控制器中,我计算了这个变量的一些元素并将其返回:return View(myvariable)

我的控制器中有另一个功能:

public void drawnFromDb(id) {
    myclass myvariable;
    if (id == "1") {
        myvariable.text = "hello";
    }
    else {
        myvariable.text = "world";
    }
}

在我的javascript函数中,我计算了其他元素:

function mydrawnFromDb(id) {
      $.ajax({
          type: "POST",
          url: baseUri + "mycontroller/drawnFromDb",
          data: { id: id },
          success: function () {

          },
          error: function (error) {

          }
      });
}

但我需要“返回”myvariable到视图。

我该怎么办呢?

任何帮助表示赞赏!

2 个答案:

答案 0 :(得分:2)

只需从控制器操作返回一个JsonResult,而不是void:

public ActionResult drawnFromDb(id) {
    myclass myvariable;
    if (id == "1") {
        myvariable.text = "hello";
    }
    else {
        myvariable.text = "world";
    }

    return Json(myvariable);
}

在您的成功回调中,您可以访问结果:

success: function (result) {
    alert(result.text);
}

答案 1 :(得分:1)

以控制器的形式从控制器返回myVariable:

        var javaScriptSerializer = new JavaScriptSerializer();
        var jsonObject = javaScriptSerializer.Serialize(myVariable);
        return jsonObject;

现在,您可以在ajax函数中使用它:

function mydrawnFromDb(id) {
  $.ajax({
      type: "POST",
      url: baseUri + "mycontroller/drawnFromDb",
      data: { id: id },
      success: function (myVariableJson) {
         //Use the myVariableJson, and access the text property
      },
      error: function (error) {

      }
  });
}