0

我通过以下方式访问数据:

        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);

        }

    }

我想知道如何将这个数据集合保存在视图中的 TextArea 内?当我们使用网络表单时,我们可以只使用 textBox.Text = textBox.Text + "some data from database";

看法:

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

谢谢你。

4

2 回答 2

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)

一旦您决定要向视图传递比单个域模型所能承载的信息更多的信息,使用视图模型将使您的生活更轻松。

于 2013-08-05T12:56:08.460 回答
1

在您.cshtml看来,您可以使用@Model

现在,既然你有一个列表,我会向你推荐join它,然后将它分配给TextArea喜欢

@{var strList = string.Join(" ", Model)}
@Html.TextArea("myTextArea",strList)
于 2013-08-05T12:51:49.850 回答