HttpPost でオブジェクトを渡すときに問題が発生しました... フォームが送信されると、コントローラー側でモデルが "null" に設定され、どこに問題があるのか わかりません..
これが私のコントローラーです:
public ActionResult AddUser(int id = 0)
{
Group group = db.Groups.Find(id);
List<User> finalList = db.Users.ToList() ;
return View(new AddUserTemplate()
{
group = group,
users = finalList
});
//Everything is fine here, the object is greatly submitted to the view
}
[HttpPost]
public ActionResult AddUser(AddUserTemplate addusertemplate)
{
//Everytime we get in, "addusertemplate" is NULL
if (ModelState.IsValid)
{
//the model is null
}
return View(addusertemplate);
}
AddUserTemplate.cs は次のとおりです。
public class AddUserTemplate
{
public Group group { get; set; }
public User selectedUser { get; set; }
public ICollection<User> users { get; set; }
}
コントローラーに null 値を返すフォームを次に示します (ドロップダウン リストには適切な値が大量に入力されていることに注意してください)。
@using (Html.BeginForm()) {
<fieldset>
<legend>Add an user</legend>
@Html.HiddenFor(model => model.group)
@Html.HiddenFor(model => model.users)
<div class="editor-field">
//Here, we select an user from Model.users list
@Html.DropDownListFor(model => model.selectedUser, new SelectList(Model.users))
</div>
<p>
<input type="submit" value="Add" />
</p>
</fieldset>
}
助けてくれてどうもありがとう