ASP.NET MVC注册中的绑定下拉



我拼命寻求自定义项目注册页面的帮助。基于可用文档,我更新了身份模型,帐户视图模型,除了我对性别或国家/地区代码的下拉列表手动编码的事实外,所有这些都可以。我无法弄清楚如何使用实体框架从数据库中填充下拉列表。因此,如果有人可以快速介绍如何实现这一目标,我将非常感谢。我想这应该很简单,但现在确实尝试了几天。

为了简单地保持维护选项,我想使用SQL上的一个表格,该表供该下拉列表。让我们以"性别"为例。因此,我已经继续前进并更新了帐户视图模型,并在底部添加了以下内容:

public class GenderList
{
    public int ID { get; set; }
    public string Gender { get; set; }
}

之后,我转到了身份模型并添加了'公共DBSET线,因此看起来如下:

public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
    public DbSet<GenderList> GenderLists { get; set; }
    public ApplicationDbContext()
        : base("DefaultConnection", throwIfV1Schema: false)
    {
    }
    public static ApplicationDbContext Create()
    {
        return new ApplicationDbContext();
    }
}

这就是我认为我迷路的地方...很明显,我也必须更新帐户controller(我已经完成了...),但是我不确定如何最好地处理它,因为现有regize.cshtml不允许我加载多种型号,等等。

对于涉及控制器的内容,我尝试了(并且失败了...):

public ActionResult GetGender()
    {
        GenderList db = new GenderList();
        ViewBag.Gender = new SelectList(db.Gender, "ID", "Gender");
        return View();
    }

,最后但并非最不重要的一点是我登记册的相关部分。cshtml:

@Html.LabelFor(m => m.Gender, new { @id = "registerGenderLabel", @class = "registerLabel col-xs-offset-1 col-xs-10 col-sm-offset-1 col-sm-10 col-md-offset-1 col-md-3 col-lg-offset-1 col-lg-4" })
            @*@{  var gender = new List<SelectListItem>
                {
                    new SelectListItem{ Text = "female", Value = "female" },
                    new SelectListItem { Text = "male", Value = "male"}
                };
            }*@
            @Html.DropDownListFor("Gender","Select")

我不确定我完全了解您在问什么。但是对于选择列表,只需添加一个选择列表作为模型的属性,该属性是视图的主要模型。

在模型中。

public <List>SelectListItems AddressPurposes {get; set;}
public string AddressPurpose {get; set;}

将其填充在控制器中,以便使用下拉列表,从而用循环中DB的值代替字符串。在这里,我只是添加一个硬编码值,但您显然可以替代任何内容:

model.AddressPurposes = new List<SelectListItem>() { };
                    model.AddressPurposes.Add(new SelectListItem() { Text = "New Address", Value = "New Address" });

视图:

@Html.DropDownListFor(m => m.AddressPurpose, Model.AddressPurposes, new { @class = "input-sm" })

相关内容

  • 没有找到相关文章

最新更新