私はMVC APPをやっています。 2つのプロパティを持つモデル呼び出しUserModel
から継承するビューを持っています。ユーザー名とパスワード。これらの値をセッション変数に保存したいので、ModelBinder
を使用しています。MVC 5セッション変数ModelBinder null onアクションメソッド
私のクラス定義は次のとおりです。
public class UserModel
{
public string UserName { get; set; }
public string Password { get; set; }
}
私のモデルバインダーはこのようなものです。
public class UserDetailModelBinder : IModelBinder
{
#region Constants
private const string SessionKey = "User";
#endregion
#region Public Methods and Operators
public object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext)
{
UserModel user = (controllerContext.HttpContext.Session != null) ? (controllerContext.HttpContext.Session[SessionKey] as UserModel) : null;
if (user == null)
{
user = new UserDetail();
controllerContext.HttpContext.Session[SessionKey] = user;
}
return user;
}
#endregion
}
そして、私は私のglobal.asax
私が見つけた問題に適切に定義されているがビューからUserModel
インスタンスを受け取り、私のAction Method
がnullであるということです。ビューを読み込むのではなく、すでにセッションがあるものを読み込み、それをセッションに保存します。
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<ActionResult> Login(UserModel model)
{
}
私はモデルがBinderModelを使用してビューから継承し、私はセッションに保存することができますどのように、それは私が、私の質問は以下のようになりBinderModel
に保存するように定義された同じモデルだから、それがあると仮定しますか?