ドロップダウンリストの項目の値がnullになっています。
私はドロップダウンリストを使い選択されたの項目の値を別のテーブル(Distrip)に写したですが。ドロップダウンリストの項目の値がnullになって、項目の値を別のテーブルに写すことができません。
model とmodel classは以下の通りです。
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; }
}
コントローラーは以下の通りです。
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();
}
Viewは狙い通り会社名が表示されています。
Viewは以下の通りです。
@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>
デバッグしたらHttpPostにてDistripのIDが狙い通りきていますがLine_IDは0になっています。
どう直せば良いでしょうか?
ご教授をよろしくお願いします。