将数组传递给 ASP.NET Core 中的数据属性

Posted

技术标签:

【中文标题】将数组传递给 ASP.NET Core 中的数据属性【英文标题】:Passing an array into a data-attribute in ASP.NET Core 【发布时间】:2019-06-10 10:33:00 【问题描述】:

我正在尝试将整数数组传递到 ASP.NET Core 中的数据属性中,但无法正常工作。

这就是我想要做的:

控制器:

public class HomeController : Controller

    public IActionResult Index()
        int[] t = 1, 2, 3, 4;
        ViewBag.t = t;
        return View();
    

剃刀视图:

@
    ViewData["Title"] = "Home Page";


<label id="intLabel" data-int-array="@(ViewBag.t)">My label</label>

我有什么:

<label id="intLabel" data-int-array="System.Int32[]">My label</label>

我想要什么:

<label id="intLabel" data-int-array='["1", "2", "3", "4"]'>My label</label>

谢谢!

【问题讨论】:

How to print contents of array horizontally?的可能重复 【参考方案1】:

一种方法是使用 Newtonsoft.Json

在你的 Razor 代码中,包含 @using Newtonsoft.Json

然后:

<label id="intLabel" data-int-array="@(JsonConvert.SerializeObject(ViewBag.t))">My label</label>

这将产生:

<label id="intLabel" data-int-array="[1,2,3,4]">My label</label>

在您所需的输出中,您已请求字符串数组 - 在这种情况下,您必须在代码中将“t”定义为字符串数组而不是 int 数组。

希望这对你有用。如果是,请将其标记为答案。

【讨论】:

以上是关于将数组传递给 ASP.NET Core 中的数据属性的主要内容,如果未能解决你的问题,请参考以下文章

将模型传递给 ASP.NET Core MVC 中的视图

如何将文件中的其他参数从 Angular 传递给 ASP.NET Core 控制器?

将数据从 javascript 传递到 asp.net core 2 razor 页面方法

将数组传递到 ASP.NET Core 路由查询字符串

ViewData 未传递给 ASP.NET Core 2.1 中的布局

通过 JSON 对象将 Session 对象中的字节数组传递给 Web 服务(Asp.Net 2.0 asmx)