我试图将一个整数数组传递给 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/