由MVC上方的文本字段生成的RazorView下拉选项

问题描述 投票:0回答:1

我正在办理登记表格。我有一个字段DisplayName,需要通过下拉选项填充。下拉列表中的选项如下:

  • 仅限名字
  • 仅限姓氏
  • 第一个+姓氏
  • 最后+名字
  • 用户名

FirstName,LastName和电子邮件值取自表单。如何从razorView中的表单中获取这些值?此外,如果某些字段为空,则不应该有任何下拉选项...因此下拉正在生成。

我对前端开发完全不熟悉,感谢您的帮助

我当前表单的代码(没有下拉列表)

<div class="middle-box text-center loginscreen  animated fadeInDown">
    <div>
        @using (Html.BeginForm("Register", "Account", FormMethod.Post, new { @class = "form-horizontal", role = "form" }))
        {
            @Html.AntiForgeryToken()
            <h4>Create a new account.</h4>
            <hr />
            @Html.ValidationSummary()
            <div class="form-group">
                @Html.LabelFor(m => m.UserName, new { @class = "col-md-5 control-label" })
                <div class="col-md-7">
                    @Html.TextBoxFor(m => m.UserName, new { @class = "form-control" })
                </div>
            </div>
            <div class="form-group">
                @Html.LabelFor(m => m.FirstName, new { @class = "col-md-5 control-label" })
                <div class="col-md-7">
                    @Html.TextBoxFor(m => m.FirstName, new { @class = "form-control" })
                </div>
            </div>
            <div class="form-group">
                @Html.LabelFor(m => m.LastName, new { @class = "col-md-5 control-label" })
                <div class="col-md-7">
                    @Html.TextBoxFor(m => m.LastName, new { @class = "form-control" })
                </div>
            </div>
            <div class="form-group">
                @Html.LabelFor(m => m.Password, new { @class = "col-md-5 control-label" })
                <div class="col-md-7">
                    @Html.PasswordFor(m => m.Password, new { @class = "form-control" })
                </div>
            </div>
            <div class="form-group">
                @Html.LabelFor(m => m.ConfirmPassword, new { @class = "col-md-5 control-label" })
                <div class="col-md-7">
                    @Html.PasswordFor(m => m.ConfirmPassword, new { @class = "form-control" })
                </div>
            </div>
            <div class="form-group">
                <div class="col-md-offset-2 col-md-8">
                    <input type="submit" class="btn btn-primary" value="Register" />
                </div>
            </div>
        }
    </div>
javascript asp.net-mvc asp.net-mvc-3 razor razorengine
1个回答
0
投票

你可以创建一个enum并使用一个帮助方法,如下所示:

@model HelperMethods.Models.Role

@Html.DropDownListFor(m => m, new SelectList(Enum.GetNames(Model.GetType()), Model.ToString()))

在这种情况下,我创建了一个名为Role的enum,并使用其中的元素名称填充我的下拉列表。

© www.soinside.com 2019 - 2024. All rights reserved.