Javascript 如何将多个JSON结果从控制器发送到视图?

Javascript 如何将多个JSON结果从控制器发送到视图?,javascript,jquery,asp.net-mvc,asp.net-mvc-3,asp.net-mvc-4,Javascript,Jquery,Asp.net Mvc,Asp.net Mvc 3,Asp.net Mvc 4,在这里,我将一个项目从控制器发送到视图。如何将多个项目从控制器发送到视图 //Controller public JsonResult GetQuantity(string id) { string getQuantity = ""; string items="Hello Quantity" getQuantity = items.ToString(CultureInfo.InvariantCulture); retu

在这里,我将一个项目从控制器发送到视图。如何将多个项目从控制器发送到视图

  //Controller 

  public JsonResult GetQuantity(string id)
    {
       string getQuantity = "";
       string items="Hello Quantity"
       getQuantity = items.ToString(CultureInfo.InvariantCulture);
       return Json(getQuantity, JsonRequestBehavior.AllowGet);
    }


        // View

      function GetQuantity(id) {


            var targetDiv = '#divYarnDistributionViewer';
            var url = "/STSM/STSA/YarnDistribution/GetQuantity/" + id;
            var form = $("#frmYarnDistributionViewer");

            var serializedForm = form.serialize();

            $.post(url, serializedForm, function (result) {
                $("#YarnDistribution_StockQuantity").val(result);

            }, "json");

        return false;


    }

是的,就像控制器中的这样:

return Json(resulst = new {Quantity = 5, Price = 285,...}, JsonRequestBehavior.AllowGet);
在你的Js中

变量数量=结果数量;
var价格=结果价格

可以将具有多个属性的对象作为JSON返回。 假设您有一个具有某些属性的基本对象:

public class Stock{
    public string Quantity { get; set; }

    public string Quantity1 { get; set; }
}
您可以从数据源所在的任何位置获取一些库存,并将数量映射到库存对象。为简单起见,我们将创建一个硬编码的股票对象:

public JsonResult GetAllQuantities()
{
   Stock stock = new Stock() {
       Quantity = "2",
       Quantity1 = "3"
   };
   return Json(stock, JsonRequestBehavior.AllowGet);
}
要查看Json是如何发送到客户端的,您可以在ajax请求的回调中将其打印到控制台。
请确保将您的请求从post更改为get,因为您只是在获取数据。

在@JDupont和@Kevin Simple的帮助下,我已经解决了我的问题。
多亏了这些家伙

     public JsonResult GetQuantity(string id)
      {
         // Here id is not used, i will use it to get Quantity and unit for my project purpose.
        string getQuantity = "";  
        string getUnit = "";       
        string item1="Hello Quantity" 
        string item2="Hello Unit"
        getQuantity = item1.ToString(CultureInfo.InvariantCulture);
        getUnit = item2.ToString(CultureInfo.InvariantCulture);
        return Json(new { getQuantity, getUnit },JsonRequestBehavior.AllowGet);
   }


    // View

  function GetQuantity(id) {
        var targetDiv = '#divYarnDistributionViewer';
        var url = "/STSM/STSA/YarnDistribution/GetQuantity/" + id;
        var form = $("#frmYarnDistributionViewer");
        var serializedForm = form.serialize();
        $.post(url, serializedForm, function (result) {
            $("#YarnDistribution_StockQuantity").val(result.getQuantity);
            $("#YarnDistribution_StockUnit").val(result.getUnit );

        }, "json");

      return false;
    }

如何使用入库功能GetQuantity@jdupont通过在控制器文件顶部引用带有using的模型以及其他using来实现。在模型下创建Stock对象。我不是在讨论列表,我是在讨论多个字段,例如您的类Stock有一个属性Quantity,假设还有另一个属性Quantity1。现在,我想将这两个字段发送到我的函数中,然后我像$(“#yandistribution_quantity”).val(result1),$(“#yandistribution_quantity 1”).val(result2)那样检索它。有可能吗。我和凯文的答案都会让你这么做。在回调函数中,您会说:$(“#yardistribution_StockQuantity”).val(result.Quantity);和$(“#yardistribution_StockQuantity1”).val(result.Quantity1);唯一的区别是Kevin使用的匿名对象可能更适合您的需要,也可能不适合您的需要。请查看对我原始答案的编辑。让我知道它是否能解决问题。