【发布时间】:2012-10-26 18:10:41
【问题描述】:
我创建了模型Message 并在我的站点的Index 视图上显示这些消息的列表。控制器将IEnumerable<Models.Message> 对象传递给视图。
为了显示所有这些消息,我使用@foreach 遍历它们。但我也想在同一个Index 视图上创建表单以创建新消息。似乎很容易,但打电话给@Html.TextAreaFor(Model.Body) 会给我以下错误:
CS1061: 'System.Collections.Generic.IEnumerable<Models.Message>' does not contain a definition for 'Body' and no extension method 'Body' accepting a first argument of type 'System.Collections.Generic.IEnumerable<Models.Message>' could be found (are you missing a using directive or an assembly reference?)
是否可以基于Models.Message 创建表单,尽管视图是基于IEnumerable<Models.Message> 创建的?
我的模型是:
public class Message
{
[BsonId]
public ObjectId Id { get; set; }
public Citizen From { get; set; }
public Citizen To { get; set; }
[Required]
[AllowHtml]
public string Body { get; set; }
[ScaffoldColumn(false)]
public DateTime Date { get; set; }
public bool IsPrivate { get; set; }
}
编辑:坦率地说,我不想创建一个额外的模型来保存一条消息用于表单和用于显示的消息列表,主要是因为在表单操作控制器中我需要处理这个“扩展”模型。我认为更清洁的应该是那里有原始的Message。
但是怎么做呢?
【问题讨论】:
-
你能把你的模型发上来看看吗?
标签: c# razor asp.net-mvc-4