次のような動的に追加されたオブジェクトを追加しました。
@Html.EditorFor(model => model.Province)
私のモデルにはProvinceプロパティが含まれていますが、ビューには最初にオブジェクトが表示されませんでした。.show()メソッドで表示できるようにしました。
ただし、コントローラーでは、Provinceの値が常にnullであることがわかりました。このように動的に追加されたオブジェクトからアクセスできるようにするにはどうすればよいですか?
追加:私のモデルは次のようになります:
public class Location
{
[Required]
public int ID { get; set; }
[Required]
public string Name { get; set; }
public string Description { get; set; }
public string Street { get; set; }
public string City { get; set; }
[Display(Name = "State/Province")]
public string Province { get; set; }
}
コントローラ:
[HttpPost]
public ActionResult Create(Location location)
{
if (ModelState.IsValid)
{
db.Location.Add(location);
db.SaveChanges();
return RedirectToAction("Index");
}
}
見る:
<div class="editor-label">
@Html.LabelFor(model => model.Province)
</div>
<div class="editor-field">
<div id="province_ddl">
@Html.DropDownListFor(
x => x.Province,
Enumerable.Empty<SelectListItem>(),
"-- Select State/Province --"
)
</div>
<div id="province_tb" style="display: none">
@Html.EditorFor(model => model.Province)
</div>
@Html.ValidationMessageFor(model => model.Province)
</div>
ドロップダウンリストを使用すると、Provinceプロパティに適切な値が表示されます。ただし、テキストボックスコントロールを表示した場合、値はありません。つまり、コントローラーでnull値を取得します。