如何附加到MVC 3中由html helper创建的TextArea?

时间:2012-07-12 03:25:22

标签: c# jquery html asp.net-mvc-3 textarea

我尝试使用Razor和Microsoft的TextArea(@Html.TextAreaFor)HTML帮助程序从View中的List集合中提取。我可以轻松填充单个注释,但如何将整个注释列表集添加到textarea?以下是我用来显示单个评论的示例:

@Html.TextAreaFor(x => x.AuditDoc.PrivateComment, 0, 0, false)

这一切都很好,但我如何在SAME textarea上附加第二,第三和第四条评论?有没有办法将整个列表集合绑定到该html.textarea助手?我最好使用html助手在Razor中执行此操作。如果那是不可能的,我会对如何使用Jquery做任何建议表示感谢。注意:评论不必绑定到模型。所以我只是使用@ Html.TextArea而不是@ Html.TextAreaFor。注释数组严格用于显示。因此,多选等没有并发症。

2 个答案:

答案 0 :(得分:1)

您可以在控制器中进行连接并将其传递给视图读取以设置到文本区域中:

控制器逻辑:

  var comments = db.Comments.ToList();
        string concatComments = string.Empty;
        foreach (var item in comments)
        {
            concatComments = concatComments + item.Title;
        }
        ViewData["Concat"] = concatComments.ToString();

然后在视图中我做了这个:

@Html.TextArea("Comments", ViewData["Concat"].ToString())

显然我的代码会让它们都非常难看,但你可以这样做:

concatComments = concatComments + " " + item.Title;

答案 1 :(得分:0)

你可以尝试,

  1. 在视图模型中包含一个包含所有注释的单独属性,并将其绑定到文本区域。

  2. 更清晰的解决方案是获取该集合属性的编辑器模板。