1

ビューに表示される ICollection 以外のすべてのもの。

テスモデル

    public class Tes
    {
        [Key]
        public int tID { get; set; }

        public int FromUserID { get; set; }//user logged in
        public int ToUserId { get; set; } //user to be sent
        public int itemTId { get; set; } //single item

        public virtual ICollection<Item> items { get; set; }

    }

項目モデル

    public class Item
    {

    public int UserId { get; set; }

    public int ID { get; set; }
    public string item_name { get; set; }
    public string item_description { get; set; }
    public string item_code { get; set; }
    public DateTime dateAdded { get; set; }
    public int catId { get; set; }
    public int?  isSelected { get; set; }
    public int isQuick { get; set; }

    public virtual ICollection<Tes> tes{ get; set; }

    }

public class ItemDBContext : DbContext
{
    public ItemDBContext()
        : base("name=ItemDbContext")
    { }

    public DbSet <Item> Items { get; set; }
    public DbSet<Category> Cats { get; set; }
    public DbSet<Tes> Tes{ get; set; }


    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        modelBuilder.Entity<Tes>().HasMany(e => e.items).WithMany(e => e.tes);
    }
}

コントローラ

    [HttpPost]
    [ValidateAntiForgeryToken]
    public ActionResult Create(Tes take)
    {
        if (ModelState.IsValid)
        {

            db.Trades.Add(take);

            //do I add ICollection seperately?

            db.SaveChanges();
            return RedirectToAction("Index");
        }

        return View(take);
    }

意見

     @foreach (var item in Model) {
<tr>
    <td>
        @Html.DisplayFor(modelItem => item.tID)
    </td>
    <td>
        @Html.DisplayFor(modelItem => item.ToUserId)
    </td>
    <td>
        @Html.DisplayFor(modelItem => item.itemTId)
    </td>
    <td>
        @Html.DisplayFor(modelItem => item.items)//not displaying?
    </td>

アヤックスポスト

        var take= {
    FromUserID: uid,
    ToUserID: TradeeUid,
    itemTradedForId: TradeeItemId,
    items: ids,
    __RequestVerificationToken: $("[name='__RequestVerificationToken']").val()
}

//jQuery.ajaxSettings.traditional = true

 $.ajax({
    type: "POST",
    url: "/Trade/Create",
    data: take
    //dataType:JSON
    //contentType: "application/json; charset=utf-8",
    //data: JSON.stringify(take)

  });

これは私が得るものです。

ICollection が表示されない

itemsネストされた for ループから取得しようとすると。エラーが発生する

ここに画像の説明を入力

それを修正しました:

ここに画像の説明を入力

しかし、まだICollection表示されません。それらが保存されていない可能性はありますか?

4

1 に答える 1

1

私はそのように動作するとは思わないDisplayFor。個々のアイテムをそのように反復処理する必要があります。

@foreach (var tes in Model) {
  ...
  @foreach (var item in tes.items) {
    Html.DisplayFor(m => m.item_name)
    ...
  }
}
于 2013-09-02T15:52:49.180 に答える