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

标签 c# html razor asp.net-core

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

这是我正在尝试做的事情:

Controller :

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

Razor 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>

谢谢!

最佳答案

一种方法是使用 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 数组。

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

关于c# - 将数组传递给 ASP.NET Core 中的数据属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54215367/

相关文章:

c# - 为什么我的 Exchange ResolveNames 搜索只返回 100 行?

javascript - 如何使我的网站避免从 URL 缩短网站(如 goo.gl)重定向?

html - 在html文档中使用mysql

asp.net-mvc-3 - 有没有办法通过 AJAX 将 "C#"对象传递给 Controller ​​?

html - .NET MVC 无法使用删除标记布置图像

c# - 为什么 ObjectDataSource 没有发送正确的参数值?

c# - 在 C# 中将列表转换为 3D 数组

c# - LINQ 中查询表达式和方法表达式的区别?

javascript - 如何显示和隐藏基于单选按钮点击的 div?

c# - 忽略 razor _layout.cshtml 中的渲染体