次のようなモデルがあります。
public class RegisterModel
{
[Required]
[Display(Name = "User name")]
public string UserName { get; set; }
[Required]
[DataType(DataType.Password)]
public string Password { get; set; }
public virtual Department Department { get; set; }
}
コントローラーのアクションは次のとおりです。
[AllowAnonymous]
public ActionResult Register(int departmentId)
{
using (var db = new DataContext())
{
var department = db.Departments.Find(departmentId);
var registerModel = new RegisterModel {Department = department};
return View(registerModel);
}
}
部門リストページがあります。Foo などの場合、ユーザーを Foo に割り当てたいと考えています。
1 . Foo - add user
次に、登録ビューがあります。
@using (Html.BeginForm())
{
@Html.AntiForgeryToken()
@Html.ValidationSummary()
@Html.HiddenFor(x => x.Department.Id)
<fieldset>
<legend>Registration Form</legend>
<ol>
<li>
@Html.LabelFor(m => m.UserName)
@Html.TextBoxFor(m => m.UserName)
</li>
<li>
@Html.LabelFor(m => m.Password)
@Html.PasswordFor(m => m.Password)
</li>
</ol>
<input type="submit" value="Register" />
</fieldset>
}
私の質問は、部門をモデルにバインドするにはどうすればよいですか? 部門IDで?または部門オブジェクト?
私は、データベースからデータを入力した Department にアクセスできるので、それを View に渡す必要があります。しかし、どうすればそれを渡すことができますか? 登録送信時に、それまたはIDにアクセスできますか?