如何使用另一个表中的信息扩展asp.net身份注册

本文关键字:asp 扩展 net 身份 注册 信息 何使用 另一个 | 更新日期: 2023-09-27 18:21:42

我有一个表Food,当用户在Account/register.cshtml中注册时,我想显示该表中的所有信息。我已经测试过将其添加到AccountController

public ActionResult Register()
{
    ApplicationDbContext db = new ApplicationDbContext();
    var food = db.Food.Select(x => x.Food).ToList();
    return View(food);
}

我的视图register.chtml看起来像这个

@model FoodApplication.Models.RegisterViewModel
@foreach (var item in Model) 
{ 
    @item.Food    
}

得到一个错误,我不能在视图模型中使用foreach。

我该如何解决这个问题?

如何使用另一个表中的信息扩展asp.net身份注册

这不是一个好方法,因为更改了默认的AccountViewModel,但您将获得所需的结果

更改AccountViewModel

public class RegisterViewModel
    {
        [Required]
        [EmailAddress]
        [Display(Name = "Email")]
        public string Email { get; set; }
        [Required]
        [StringLength(100, ErrorMessage = "The {0} must be at least {2} characters long.", MinimumLength = 6)]
        [DataType(DataType.Password)]
        [Display(Name = "Password")]
        public string Password { get; set; }
        [DataType(DataType.Password)]
        [Display(Name = "Confirm password")]
        [Compare("Password", ErrorMessage = "The password and confirmation password do not match.")]
        public string ConfirmPassword { get; set; }
        public List<Food> Products = null;
    }

AccountController 中的更改索引方法

 public ActionResult Index()
    {
        return View(new RegisterViewModel()
        {
            Products = db.Food.Select(x => x.Food).ToList()
        });
    }

添加到Register.cshtml

<ul>
    @foreach (var z in Model.Products)
    {
        <li>@z.id</li>
        <li>@z.name</li>    
    }
</ul>