私はC#を初めて使用しており、現在ASP.NET MVCアプリケーションを作成しています。私は現在、指示に従っしようとすると、上記のエラーを取得していますと、ここで見つける:Extending ASP.NET Identityタイプまたは名前空間の名前 'Application User'が見つかりませんでした
私は彼らがログインされると、ユーザーの最初の名前ではなく、自分のメールアドレスを表示するように私のコードを取得しようとしています
。ここに私のApplicationUserクラスがIdentityModels.cs内で発見され_LoginPartial.cshtmlここ
@using Microsoft.AspNet.Identity
@if (Request.IsAuthenticated)
{
using (Html.BeginForm("LogOff", "Account", FormMethod.Post, new { id = "logoutForm", @class = "navbar-right" }))
{
@Html.AntiForgeryToken()
<ul class="nav navbar-nav navbar-right">
<li>
@{
var manager = new UserManager<ApplicationUser>(new Microsoft.AspNet.Identity.EntityFramework.UserStore<ApplicationUser>(new ApplicationDbContext()));
var currentUser = manager.FindById(User.Identity.GetUserId());
}
@Html.ActionLink("Hello " + currentUser.FName + "!", "Index", "Manage", routeValues: null, htmlAttributes: new { title = "Manage" })
</li>
<li><a href="javascript:document.getElementById('logoutForm').submit()">Log off</a></li>
</ul>
}
}
else
{
<ul class="nav navbar-nav navbar-right">
<li>@Html.ActionLink("Register", "Register", "Account", routeValues: null, htmlAttributes: new { id = "registerLink" })</li>
<li>@Html.ActionLink("Log in", "Login", "Account", routeValues: null, htmlAttributes: new { id = "loginLink" })</li>
</ul>
}
ための私のコードです
public class ApplicationUser : IdentityUser
{
public string FName { get; set; }
public string LName { get; set; }
public async Task<ClaimsIdentity> GenerateUserIdentityAsync(UserManager<ApplicationUser> manager)
{
// Note the authenticationType must match the one defined in CookieAuthenticationOptions.AuthenticationType
var userIdentity = await manager.CreateIdentityAsync(this, DefaultAuthenticationTypes.ApplicationCookie);
// Add custom user claims here
return userIdentity;
}
}
アドバイスをいただければ幸いです。
ビューでApplicationUserクラスのusingディレクティブを使用する必要があります。それ以外の場合、そのクラスはそこに表示されません。 – Andrei
その構文は何ですか?私は試しました: @model ContactManager.Models.ApplicationUser しかし、それは動作しませんでした – Sam
あなたはビューで既に1つを使用しています。構文は同じですが、名前空間とクラスだけが異なります – Andrei