

私はドロップダウンリストを使い選択されたの項目の値を別のテーブル(Distrip)に写したですが。ドロップダウンリストの項目の値がnullになって、項目の値を別のテーブルに写すことができません。  
model とmodel classは以下の通りです。

[code]

    public partial class LineInfo
    {
         public int Line_ID { get; set; }
         public string CoID { get; set; }
         public string CoName { get; set; }
    }
    
    public partial class Distrip{
         public int ID { get; set; }
         public int Line_ID { get; set; }
    }
    public class Modle
    {
        public LineInfo lineinfo { get; set; }
        public List<Dist_Info> Distrip { get; set; }
    }
    
[/code]

コントローラーは以下の通りです。

[code]

    public ActionResult Line_ID()
    {
          count = db.Line_Info.Max(p => p.Line_ID);
          IEnumerable<SelectListItem> line = db.LineInfo
                         .Select(x => new SelectListItem
                         {
                             Value = x.Line_ID.ToString(),
                             Text = x.CoName,
                         });
          ViewBag.line = line;
          view ();
    }
    
    [HttpPost]
    [ValidateAntiForgeryToken]
    public ActionResult Line_ID(OpeModle Ope)
        {
            if (ModelState.IsValid)
            {
                foreach (var dist in Ope.Distrip)
                {
                    db.Dist_Info.Add(dist);
                }
                db.SaveChanges();
                ViewBag.message = "Data successfully saved!";
            }
    
            return View();
        }
    
[/code]

Viewは狙い通り会社名が表示されています。  
Viewは以下の通りです。

[code]

    @model OpeModle
    
    <table class="table">
                <thead border="1">
                    <tr>
                        <td colspan="2" style="text-align:center;font-size:larger; width:800px">
                           Distriotion
                        </td>
                    </tr>
                </thead>
    
                <tr border="1">
                    <th>@Html.Label("Tili", "Line_ID ", new { @class = "col-md-2 control-label" })</th>
                    <th>@Html.Label("Tili", "会社名 ", new { @class = "col-md-2 control-label" })</th>
                </tr>
    
                @for (int i = 0; i < ViewBag.count; i++)
                {
                    @Html.HiddenFor(model => model.Distrip[i].Dist_ID, new { id = "natureOfVisitField", Value = ViewBag.countDis + i })
                    <tr>
                        <th>@Html.Label("Tili", "Line_ID ", new { @class = "col-md-2 control-label" })</th>
    
                        <th>
                            <div class="form-group">
                                <div class="col-md-10">
                                    @Html.DropDownList("Line_ID", (IEnumerable<SelectListItem>)ViewBag.line, "Select")
                                    @Html.ValidationMessageFor(model => model.Distrip[i].Line_ID, "", new { @class = "text-danger" })
                                </div>
                            </div>
                        </th>
    
                    </tr>
                }
    
            </table>
    
[/code]

デバッグしたらHttpPostにてDistripのIDが狙い通りきていますがLine_IDは0になっています。  
どう直せば良いでしょうか？  
ご教授をよろしくお願いします。


CC BY-SA 3.0
2017-08-24T13:56:58.027
37467
2017-08-26T13:28:46.180
2017-08-26T13:28:46.180
23844
23844
question
asp.net mvc
ドロップダウンリストの項目の値がnullになっています。