无法设置EditorFor值(ASP.NET MVC)

时间:2017-03-07 19:31:52

标签: c# asp.net asp.net-mvc asp.net-mvc-4

我编写ASP.NET应用程序

我有这样的模特

 public class InvitationMails
{
    [Key]
    public int Individ_Id { get; set; }
    public string From { get; set; }
    [Display (Name = "Почта")]
    public string To { get; set; }
    public string Subject { get; set; }
    public string Body { get; set; }
    public string Link { get; set; }
    public string Name { get; set; }

}

并且像这样查看

@model IEnumerable<SmartSolutions.Models.InvitationMails>
<div class="inner-div3">
<div class="right-welcome-div2">
    <table class="table">
        <tr style=" width: 100%">
            <th style="font-size: 20px;padding-left: 60px;">
                @Html.DisplayNameFor(model => model.To)
            </th>
         </tr>
        <tr>
            <td style="height: 40px; width: 40px;">
                <a href='@Url.Action("Create", "InvitationMails")'>
                    <img style="object-fit: cover;" src='@Url.Content("~/Images/plus.png")' />
                </a>
                <input type="" value="Send"/>
            </td>
        </tr>
        @foreach (var item in Model)
        {
            <tr>
                <td style="font-size: 14px; padding-left: 20px; padding-top: 10px;">
                    @Html.DisplayFor(modelItem => item.To)
                </td>
                <td style="text-align: end;padding-top: 10px;">
                    <a href='@Url.Action("Edit", "InvitationMails", new {id = item.Individ_Id})'>
                        <img src='@Url.Content("~/Images/Edit.png")' />
                    </a>
                    <a href='@Url.Action("Delete", "InvitationMails", new {id = item.Individ_Id})'>
                        <img src='@Url.Content("~/Images/Delete.png")' />
                    </a>
               </td>
            </tr>
        }
    </table>
</div>

我还要设置一个@Html.EditorFor字段并将其写为@Html.EditorFor(model =>model.To),但我有此错误。我不明白为什么,因为我的模型中有To

enter image description here

我如何解决这个问题?

2 个答案:

答案 0 :(得分:0)

您的模型是IEnumerable,但“To”是其元素的属性。 你应该得到一个元素,然后使用EditorFor。 例如:

EditorFor(model => model.First().To)

答案 1 :(得分:0)

您正在尝试使用foreach块之外的一个项目的属性。您的模型不是一个项目,而是许多项目,因此当您访问“收件人”属性时,您必须为模型中的单个项目访问它。