0

ASP.NET 5 Web アプリケーション テンプレートを使用ApplicationUserし、BusinessName を追加して拡張しました

    public class ApplicationUser : IdentityUser
{
    public string BusinessName { get; set; }

dbContext の BusinessName プロパティ

    public partial class CustomersContext : IdentityDbContext<ApplicationUser>
{
    protected override void OnModelCreating(ModelBuilder modelBuilder)
    {
        base.OnModelCreating(modelBuilder);
        modelBuilder.Entity<ApplicationUser>(entity =>
        {
            entity.HasIndex(e => e.BusinessName).HasName("BusinessNameIndex");

            entity.Property(e => e.BusinessName)
                .HasMaxLength(255)
                .HasColumnType("varchar");

BusinessName も ViewModels/Manage/IndexViewModel.cs に追加されました

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNet.Identity;

namespace Customers.Web.ViewModels.Manage
{
    public class IndexViewModel
    {
        public bool HasPassword { get; set; }

        public IList<UserLoginInfo> Logins { get; set; }

        public string BusinessName { get; set; }

        public string PhoneNumber { get; set; }

        public bool TwoFactor { get; set; }

        public bool BrowserRemembered { get; set; }
    }
}

ManageController Index アクションが呼び出されます

        public async Task<IActionResult> Index(ManageMessageId? message = null)
    {
        ViewData["StatusMessage"] =
            message == ManageMessageId.ChangePasswordSuccess ? "Your password has been changed."
            : message == ManageMessageId.SetPasswordSuccess ? "Your password has been set."
            : message == ManageMessageId.SetTwoFactorSuccess ? "Your two-factor authentication provider has been set."
            : message == ManageMessageId.Error ? "An error has occurred."
            : message == ManageMessageId.AddPhoneSuccess ? "Your phone number was added."
            : message == ManageMessageId.RemovePhoneSuccess ? "Your phone number was removed."
            : "";

        var user = await GetCurrentUserAsync();
        var model = new IndexViewModel
        {
            HasPassword = await _userManager.HasPasswordAsync(user),
            PhoneNumber = await _userManager.GetPhoneNumberAsync(user),
            TwoFactor = await _userManager.GetTwoFactorEnabledAsync(user),
            Logins = await _userManager.GetLoginsAsync(user),
            BrowserRemembered = await _signInManager.IsTwoFactorClientRememberedAsync(user)
        };
        return View(model);
    }

Views/Manage/Index.cshml にも

@model IndexViewModel
@{
    ViewData["Title"] = "Manage your account";
}

<h2>@ViewData["Title"].</h2>
<p class="text-success">@ViewData["StatusMessage"]</p>
<div>
    <h4>Change your account settings</h4>
    <hr />
    <dl class="dl-horizontal">
        <dt>External Logins:</dt>
        <dd>
            @Model.Logins.Count [<a asp-controller="Manage" asp-action="ManageLogins">Manage</a>]
        </dd>

        <dt>Business Name:</dt>
        <dd>
            @Model.BusinessName
        </dd>

BusinessName を入力する正しい方法は何ですか?

4

1 に答える 1

1

BusinessNameコントローラー アクションで、ビュー モデルに を設定しませんでした:

var user = await GetCurrentUserAsync();
var model = new IndexViewModel
{
    BusinessName = user.BusinessName,
    ...
};
于 2016-01-10T09:20:11.657 に答える