私はMVC4を初めて使用することから始めます...だから優しくしてください
私はモデルを持っています
public class LoginModel
{
[Required]
[Display(Name = "User name")]
public string UserName { get; set; }
[Required]
[DataType(DataType.Password)]
[Display(Name = "Password")]
public string Password { get; set; }
[Display(Name = "Remember me?")]
public bool RememberMe { get; set; }
public double CurrentBalance { get; set; }
}
これは、標準のログイン モデルの単なる拡張であり、CurrentBalance 変数を追加しました。
次に、ユーザー名とパスワードを使用して別のシステムにログインするコードを AccountModel に追加しました。ログインが成功したら、返された値で CurrentBalacnce 値を更新し、RedirectToAction を使用してログイン ページを読み込みます。
[AllowAnonymous]
[HttpPost]
public ActionResult Login(LoginModel model, string returnUrl)
{
if (ModelState.IsValid)
{
//Log into the server
if (server_loggedIn)
{
server.LogOut();
}
if (server.LogIn("****", "****", "****") == 0)
{
if (server.GetUserInfoByUserName(model.UserName) == 0)
{
if (server.GetUserTransactionInfo(model.UserName) == 0)
{
model.UserName = server.m_sLoggedInUser;
model.CurrentBalance = server.m_currentBalance;
FormsAuthentication.SetAuthCookie(model.UserName, model.RememberMe);
return RedirectToAction("Index","Account", new {model});
}
}
}
else
{
ModelState.AddModelError("", "The user name or password provided is incorrect.");
}
}
// If we got this far, something failed, redisplay form
return View(model);
}
ご覧のとおり、私は今のところ標準コードを使用して頭を丸めていますが、インデックスページをロードすると、モデルで null 値が取得されます
@model Print_Management.Models.LoginModel
@{
ViewBag.Title = "Your Account";
}
@section Header {
@Html.ActionLink("Back", "Index", "Home", null, new { data_icon = "arrow-l", data_rel = "back" })
<h1>@ViewBag.Title</h1>
}
<p>
Logged in as <strong>@User.Identity.Name</strong>.
/n\nCurrent Balance <strong>@Model.CurrentBalance</strong>
</p>
<ul data-role="listview" data-inset="true">
<li>@Html.ActionLink("Deposit", "ChangePassword")</li>
<li>@Html.ActionLink("Log off", "LogOff")</li>
</ul>
私は非常に基本的な間違ったことをしていると確信しています...しかし、今後はビューとの間で変数を渡す必要があるため、どんな助けも大歓迎です..
前もって感謝します