我已经创建了模型并在我的站点视图中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。
但是怎么做?