2017-08-18 20 views
0

私は3つのテーブルと多対多の関係を持っています。従業員、歴史、およびタイトル。履歴テーブルには、タイムスパンと、従業員とタイトルの両方との関係が含まれています。MVC関連するデータの更新

私は最終的に、各従業員のタイムパンとタイトルの両方を共通のビューから編集できるようにしたいと考えています。 employeeController.cs私はフォームを提出するときに私はこのコードを持っています。

[HttpPost, ActionName("Edit")] 
[ValidateAntiForgeryToken] 
public ActionResult Edit(employee empl) // Note: I have no bindings here, either. Should I? 
    if (ModelState.IsValid) 
    { 
     db.Entry(empl).State = EntityState.Modified; 
     db.SaveChanges(); 
     return RedirectToAction("Index"); 
    } 

    return View(empl); 
} 

しかし、オブジェクトemplは、履歴、コレクションのそれには何もありません。それは単にCount = 0と言います。私はそれを更新することができるように私の履歴(そして後でタイトルテーブル)をどのように含めることができますか?

employee.cs私のいくつか:参考

public partial class employee 
{ 
    public employee() 
    { 
     this.Histories = new HashSet<Histories>(); 
    } 
    public virtual ICollection<Histories> Histories { get; set; } 
} 

、これは従業員のためにEdit.cshtmlに正しく示しています。より多くの情報が必要な場合は

<table class="table"> 
<tr> 
    <th>Start date</th> 
    <th>End date</th> 
    <th>Title</th> 
</tr> 
@foreach (var item in Model.Histories.OrderByDescending(x => x.fromdate)) 
{ 
    <tr> 
     <td> 
      @Html.EditorFor(modelItem => item.fromdate) 
     </td> 
     <td> 
      @Html.EditorFor(modelItem => item.todate) 
     </td> 
     <td> 
      @Html.EditorFor(modelItem => item.Title.Title) 
     </td> 
    </tr> 
} 
</table> 

は、お気軽にお尋ねをし、申し訳ありません任意のタイプミス。私はすべてのクラス名を英語に翻訳しなければならなかったので、より理解しやすくなりました。このようseomthing

+0

は、あなたは私の 'DB' の種類を言って気にしますか? – wimdetr

答えて

0

使用:

  for (int i = 0; i < Model.Histories.OrderByDescending(x => x.fromdate).Count(); i++) 
      { 
       <tr> 
        <td> 
         @Html.HiddenFor(modelItem => Model.Histories[i].fromdate)        
         @Html.EditorFor(modelItem => Model.Histories[i].fromdate)        
        </td> 
        <td> 
         @Html.HiddenFor(modelItem => Model.Histories[i].todate)        
         @Html.EditorFor(modelItem => Model.Histories[i].todate) 
        </td> 
        <td style="text-align: center"> 
         @Html.HiddenFor(modelItem => Model.Histories[i].Title.Title)        
         @Html.EditorFor(modelItem => Model.Histories[i].Title.Title)        
        </td> 
       </tr> 
      } 
関連する問題