まず、私は MVC を初めて使用します。私は Web フォームの担当者でした...
ページにログイン コントロールを表示したいのですhome/index
が、何をしてもエラーが発生します。さまざまな手法を試しましたが、各手法で多くのエラーが発生したため、ここにすべてをリストすることはしません.
現在Request.IsAuthenticated
、ユーザー名を表示する場合はログインフォームを表示するように設定しています。しかし、フォームは明らかにホームコントローラーを見ており、ログインを送信しても何も起こりません。
アドバイスをいただければ幸いです。私はこれに何日も手を出しています。
ありがとう :)
コードは次のとおりです。
'@{
ViewBag.Title = "MyApp";
}
<p>Code for main Index Page here</p>
@model Application.Models.LoginModel
@{
ViewBag.Title = "Log in";
}
@if (Request.IsAuthenticated) {
<text>
Hello, @Html.ActionLink(User.Identity.Name, "Manage", "Account", routeValues: null, htmlAttributes: new { @class = "username", title = "Manage" })!
@using (Html.BeginForm("LogOff", "Account", FormMethod.Post, new { id = "logoutForm" })) {
@Html.AntiForgeryToken()
<a href="javascript:document.getElementById('logoutForm').submit()">Log off</a>
}
</text>
} else {
<section id="loginForm">
<h2>Use a local account to log in.</h2>
@using (Html.BeginForm(new { ReturnUrl = "RedirectToAction" }))
{
@Html.AntiForgeryToken()
@Html.ValidationSummary(true)
<fieldset>
<legend>Log in Form</legend>
<ol>
<li>
@Html.LabelFor(m => m.UserName)
@Html.TextBoxFor(m => m.UserName)
@Html.ValidationMessageFor(m => m.UserName)
</li>
<li>
@Html.LabelFor(m => m.Password)
@Html.PasswordFor(m => m.Password)
@Html.ValidationMessageFor(m => m.Password)
</li>
<li>
@Html.CheckBoxFor(m => m.RememberMe)
@Html.LabelFor(m => m.RememberMe, new { @class = "checkbox" })
</li>
</ol>
<input type="submit" value="Log in" />
</fieldset>
<p>
@Html.ActionLink("Register", "Register", "Account") if you don't have an account.
</p>
}
@section Scripts {
@Scripts.Render("~/bundles/jqueryval")
}
</section>
}
'