[英]How to get data in enum from database instant of stastically typed data? in asp.net core mvc
[英]How to get related data from database in ASP.NET Core MVC
我是該類型開發的新手,我想知道如何獲取相關數據。
我有 2 個表AspNetUsers
和Accounts
。 在Accounts
表中只有 3 列Id
、 UserId
join AspNetUsers
表和Amount
。 所以,我想做的就是獲取當前登錄用戶的這個帳戶信息。
我正在嘗試在文檔中找到的東西,它可以工作,但顯示出奇怪的結果:
Index.cshtml
:
@page
@model IndexModel
@{
ViewData["Title"] = "Home page";
}
@using Microsoft.AspNetCore.Identity
@inject SignInManager<IdentityUser> SignInManager
@inject UserManager<IdentityUser> UserManager
@{
var user = await UserManager.GetUserAsync(User);
}
@if (SignInManager.IsSignedIn(User))
{
<div class="text-center">
<h1 class="display-4">Welcome back, @(user.Email.Split("@")[0])</h1>
</div>
<div>
<h5>Your balance: @Html.DisplayNameFor(model => model.account)</h5>
</div>
}
else
{
<div class="text-center">
<h1 class="mb-3">Welcome, new one here? Go on and create account!</h1>
</div>
}
Index.cshtml.cs
:
public class IndexModel : PageModel
{
private readonly ILogger<IndexModel> _logger;
private readonly WebBankDbContext _context;
private readonly UserManager<IdentityUser> userManager;
private readonly SignInManager<IdentityUser> signInManager;
public IdentityUser user;
public Account account;
public IndexModel(SignInManager<IdentityUser> signInManager, UserManager<IdentityUser> userManager, ILogger<IndexModel> logger, WebBankDbContext context)
{
_logger = logger;
_context = context;
this.userManager = userManager;
this.signInManager = signInManager;
}
public async Task OnGetAsync()
{
if (signInManager.IsSignedIn(User))
{
user = await userManager.GetUserAsync(User);
account = (from st in _context.Accounts where st.UserId == user.Id select st).First();
}
}
}
我正在用斷點調試這段代碼,發現account
中有正確的信息,但在頁面上顯示如下:
Your balance: account
怎么了? 我怎樣才能解決這個問題? 謝謝。
DisplayNameFor
顯示模型的名稱(您的值也在account.Amount
中,而不僅僅是account
)。
只需更改為:
<h5>Your balance: @(Model.account.Amount)</h5>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.