1

次のようなモデルがあります。

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にアクセスできますか?

4

1 に答える 1