【问题标题】:RazorView Dropdown options generated by the textfields above MVC由 MVC 上方的文本字段生成的 Razor View Dropdown 选项
【发布时间】:2018-08-13 02:16:36
【问题描述】:

我正在处理注册表单。 我有一个字段 DisplayName 需要通过下拉选项填充。下拉列表中的选项如下:

  • 仅限名字
  • 仅限姓氏
  • 名字 + 姓氏
  • 姓氏+名字
  • 用户名

FirstName、LastName 和 email 值取自表单。如何从 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>

【问题讨论】:

  • 您可以通过 Jquery Ajax 实现这一点。您可以在下拉更改事件中为显示名称编写代码。
  • 你是什么DisplayName 属性- 是string 还是enum 来识别可能的值?您需要使用@Html.DropDownListFor() t 生成&lt;select&gt; 并绑定到DisplayName,然后使用javascritpt 根据其他表单控件的状态隐藏/显示相应的选项
  • DisplayName 属性是一个字符串,但作为先前定义的单词的组合,即:这些是先前定义的值:名字:Michael 姓氏:Jordan 用户名:micjord 下拉列表应该是:- Michael - 乔丹 - 迈克尔乔丹 - 乔丹迈克尔 - micjord

标签: javascript asp.net-mvc asp.net-mvc-3 razor razorengine


【解决方案1】:

您可以创建enum 并使用辅助方法,如下所示:

@model HelperMethods.Models.Role

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

在本例中,我创建了一个名为 Role 的 enum,并用其中的元素名称填充了我的下拉列表。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-12-19
    • 2020-08-03
    • 1970-01-01
    • 2016-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多