1

ドメインモデルとそれに関連する子エンティティからのすべてのデータも表示するMVC4アプリでビューを構築しようとしていますが、何らかの理由で、ビュー内の子のプロパティにアクセスできません。Intellisenseはそれらを認識しません。

これがサブスクライバーと呼ばれる私のドメインモデルです。

public class Subscriber
{

    [Required]
    [Display(Name = "Subscriber ID")]
    public int SubscriberId { get; set; }

    [Required]
    [DataType(DataType.DateTime)]
    [Display(Name = "Date Created")]
    public DateTime DateCreated { get; set; }

    //set to money in DB
    [Display(Name = "Credits (Money owed to customer)")]
    private static decimal _Credits = 0;
    public decimal Credits { get { return _Credits; } set { _Credits = value; } }

    //set to money in DB
    [Display(Name = "Debits (Money owed to us)")]
    private static decimal _Debits = 0;
    public decimal Debits { get { return _Debits; } set { _Debits = value; } }

    public List<UserProfile> Users { get; set; }

    public List<Website> Websites { get; set; }

    public List<Order> Orders { get; set; }

    public List<SubscriberNote> SubscriberNotes { get; set; }

}

ご覧のとおり、サブスクライバーには関連する子エンティティが多数あります。熱心な読み込みアプローチを使用している私のコントローラーコードは次のとおりです。

public ActionResult Edit(int id = 0)
    { 
        var Subscriber = db.Subscribers
                           .Where(s => s.SubscriberId == id)
                           .Include(s => s.Users)
                           .Include(s => s.SubscriberNotes)
                           .Include(s => s.Orders)
                           .Include(s => s.Websites.Select(w => w.DomainNames))
                           .FirstOrDefault();

        return View(Subscriber);
    }

ここに私のコントローラーがあります:

@model PpModels.Models.Subscriber

@{
ViewBag.Title = "Edit";
}


@using (Html.BeginForm()) {
@Html.ValidationSummary(true)

<fieldset>
    <legend>Subscriber</legend>

    @Html.HiddenFor(model => model.SubscriberId)


    --deleted fro brevity--

    --Problem is below--

    <div class="editor-label">
        @Html.LabelFor(model => model.Users.FirstName)
    </div>    

    <p>
        <input type="submit" value="Save" />
    </p>
</fieldset>
}

MVCはmodel.Users.FirstNameが好きではありません。これらの値にアクセスするにはどうすればよいですか?とても有難い!

4

1 に答える 1

0

このプロパティは。であるため、ループする必要がありますListUsersプロパティはありませんが、そのFirstName中の各ユーザーにはあります。

@foreach(var user in model.Users)
{
    <div class="editor-label">
        @Html.LabelFor(model => user.FirstName)
    </div>
    ....  
}
于 2013-03-25T23:16:40.913 に答える