【问题标题】:How to pass ASP.NET Core collection to JavaScript?如何将 ASP.NET Core 集合传递给 JavaScript?
【发布时间】:2020-09-22 03:50:31
【问题描述】:

我是 .NET 核心世界的新手。我在将@foreach (var item in Model.Products) 转换为包含 JSON 产品对象(id、名称)的 JavaScript 数组时遇到了问题。我尝试了在 Stack Overflow 和一些博客中找到的解决方案,但它们中的每一个最终都从服务器状态 500 变为忽略分配。

错误尝试:

var yourjavascriptArray = <%=new JavaScriptSerializer().Serialize(cSharpArrayName);%>;

var inData = @Html.Raw(Json.Encode(Model.Products));

使用的代码:

控制器:

public IActionResult Index(string searchkey)
{
  ... 
  return View(new Models.ProductSearcherModel() { SearchKey = searchkey, Products = prods 
});

Index.cshtml:

@foreach (var item in Model.Products)
{
   //how to assign Model.Products to js array?
}

【问题讨论】:

  • edit您的问题展示您的尝试。我们不想浪费您的时间和我们建议您已经尝试过但发现缺乏的解决方案。

标签: javascript asp.net asp.net-core razor


【解决方案1】:

这感觉像是错误的方法。

我通常会建议对控制器进行单独的 ajax 调用来检索 json。但是如果没有看到您拥有的代码,就很难说更多。

【讨论】:

    【解决方案2】:

    如何将 Model.Products 赋值给 js 数组?

    您可以尝试使用 JsonHelper.Serialize 方法,如下所示。

    @section scripts{
        <script>
            var products = @Json.Serialize(Model.Products);
            console.log(products);
        </script>
    }
    

    测试结果

    另外,如果你想在 JavaScript 客户端检索数据并进行操作,你可以使用 ajax 等来实现。

    【讨论】:

      猜你喜欢
      • 2020-12-18
      • 2017-08-25
      • 1970-01-01
      • 2014-11-22
      • 1970-01-01
      • 1970-01-01
      • 2013-07-02
      • 2020-01-25
      • 1970-01-01
      相关资源
      最近更新 更多