c# - 将数组值合并为单个值以显示在网格的单列中

标签 c# asp.net-mvc asp.net-mvc-3 c#-4.0 telerik

我有一个使用 Telerik 网格控件的 MVC3 应用程序。我正在很好地填充网格,但我使用的模型内部有一个数组,需要在单列中显示。这是我的模型

public class MyModel
{
    public string parentName {get; set;}
    public string[] childrenNames { get; set; }
}

现在用 Controller 中的数据填充我的类:

 public ActionResult Index()
 {
            var loo = new MyModel[2];
            loo[0] = new MyModel();
            loo[0].parentName = "Troy";
            loo[0].childrenNames[0] = "chris";
            loo[0].childrenNames[1] = "tony";
            loo[1] = new MyModel();
            loo[1].parentName = "Mike";
            loo[1].childrenNames[0] = "lee";
            loo[1].childrenNames[1] = "mary";

            IEnumerable<MyModel> model = loo;
        return View(model);

 }

现在我的childrenNames数组可以并且将会有多个条目,但我需要将childrenNames组合成一个用逗号分隔的值并显示在我的网格中:

@model IEnumerable<MyModel>
@(Html.Telerik().Grid(Model)
.Columns(columns =>
{
    columns.Bound(o => o.parentName).Width(100).Title("Parent");
    columns.Bound(o => o.childrenNamesCombined).Width(250).Title("Kids");
 }

我该怎么做?

最佳答案

不能将数组作为单个列

您应该将其设置为模型中的字符串,或者使用连接数组设置另一个属性:

public class MyModel
{
    public string parentName {get; set;}
    public string[] childrenNames { get; set; }
    public string JoinedNames { get; set; }
}

loo[1] = new MyModel();
..
...
loo[1].JoinedNames  = string.Join("," loo[1].childrenNames);

@(Html.Telerik().Grid(Model)
.Columns(columns =>
{
    columns.Bound(o => o.parentName).Width(100).Title("Parent");
    columns.Bound(o => o.JoinedNames).Width(250).Title("Kids");
 }

关于c# - 将数组值合并为单个值以显示在网格的单列中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10639552/

相关文章:

c# - asp.net:response.redirect 上的 session 清除?

c# - 将类型转换为类

asp.net-mvc - Windows Azure Multi-Tenancy

json - MVC 3 尝试将 JSON 对象从 View 发送到模型

c# - 如何将地理坐标解析为口语?

c# - .NET和nodejs、CryptoJS之间的AES算法值差异

c# - 如何防止 HttpClient 发送连接 header

c# - 上传的文件未显示在项目解决方案 (Mvc5) 中

c# - 为 jquery 文件上传编写服务器端处理程序

c# - 从表中读取数据并将其传递给asp.net mvc3中的 Controller