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

Tyl*_*nes 3 html c# razor asp.net-core

我试图将一个整数数组传递到 ASP.NET Core 中的数据属性中,但我无法让它工作。

这是我想要做的:

控制器 :

public class HomeController : Controller
{
    public IActionResult Index(){
        int[] t = {1, 2, 3, 4};
        ViewBag.t = t;
        return View();
    }
}
Run Code Online (Sandbox Code Playgroud)

剃刀视图:

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

<label id="intLabel" data-int-array="@(ViewBag.t)">My label</label>
Run Code Online (Sandbox Code Playgroud)

我有什么:

<label id="intLabel" data-int-array="System.Int32[]">My label</label>
Run Code Online (Sandbox Code Playgroud)

我想要什么:

<label id="intLabel" data-int-array='["1", "2", "3", "4"]'>My label</label>
Run Code Online (Sandbox Code Playgroud)

谢谢 !

Pha*_*018 7

一种方法是使用 Newtonsoft.Json

在您的 Razor 代码中,包括@using Newtonsoft.Json.

进而:

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

这将产生:

<label id="intLabel" data-int-array="[1,2,3,4]">My label</label>
Run Code Online (Sandbox Code Playgroud)

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

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