ASP.NET MVC在TextArea内部的View中显示数据集合

时间:2013-08-05 12:48:12

标签: asp.net-mvc razor

我使用以下方式访问数据:

        public ActionResult Index()
    {

        //IEnumerable<ChatLogs> c = from p in db.ChatLogs select p;
        //return View(c);
        using (var db = new ChatLogContext())
        {
            var list = db.ChatLogs.ToList();

            return View(list);

        }

    }

我想知道如何在View中的TextArea中保存这个数据集合?当我们使用webforms时,我们可以只使用textBox.Text = textBox.Text +“来自数据库的一些数据”;

查看:

@model IEnumerable<Chat.Models.ChatLogs>
@Html.TextArea("chatScreen", new { @Class = "chatScreen" })

谢谢。

2 个答案:

答案 0 :(得分:2)

我建议你创建一个视图模型。例如:

class ChatLogsViewModel
{
    public string LogListString { get; set; }
}

将其传递给视图,而不是传递原始列表:

var list = db.ChatLogs.ToList();
var vm = new ChatLogsViewModel { LogListString = /* convert list to single string here */ };
return View(vm);

在视图中,只需执行以下操作:

@model Your.Namespace.ChatLogsViewModel
@Html.TextAreaFor(model => model.LogListString)

一旦您决定将更多信息传递给视图,而不是单个域模型可以传递的信息,使用视图模型将使您的生活更轻松。

答案 1 :(得分:1)

.cshtml视图中,您可以使用@Model

访问数据

现在,由于您有一个列表,我建议您join,然后将其分配给TextArea,如

@{var strList = string.Join(" ", Model)}
@Html.TextArea("myTextArea",strList)