首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在.cshtml中读取ASP.net mvc下拉列表

问在.cshtml中读取ASP.net mvc下拉列表
EN

Stack Overflow用户
提问于 2014-10-08 04:12:55
回答 1查看 650关注 0票数 0

我想有一个下拉列表填充不同的值取决于用户选择的国家。

在我的.cshtml文件中,我们通过绑定到一个枚举来创建一个下拉列表

代码语言:javascript
复制
    @helper DropDownField(string binding, Type enumType)
    {
        <!-- ko with : @(binding) -->
        <div class="control-group" data-bind="css: { error: isInvalid }">
        <label class="control-label" for="@binding" data-bind="text: title">replace me</label>
        <div class="controls">
        <select id="@binding" name="@binding" data-bind="value: value">
            @{Dictionary<string, string> enumValues; }
                enumValues = EnumExtensionMethods.GetNameAndFriendlyNameDictionary(enumType);


            @foreach (KeyValuePair<string, string> kvp in enumValues)
                { 
                @:<option value="@kvp.Key">@(!String.IsNullOrWhiteSpace(kvp.Value) ? kvp.Value : "&nbsp;")</option>
            }
        </select>
        <span class="help-inline" data-bind="text: errorMessage"></span>
    </div>
</div>
<!-- /ko -->
}

然后我会代码来显示适当的列表,这取决于所选择的国家。当然,这是行不通的。我不确定可以用来检查国家/地区值的语法。

代码语言:javascript
复制
    @DropDownField("country")                                 
    if ($('#country').val() == "US") {
        @DropDownField("state", typeof(StateType))                         
    } else {
        @DropDownField("state", typeof(ProvinceTypeCA))
    }
EN

回答 1

Stack Overflow用户

发布于 2014-10-08 04:32:56

也许下次做个JS小提琴..。

你的代码看起来有点复杂(我不是<!-- ko的粉丝),如果我做一个下拉列表,它的值是通过一个国家选择的,我会(显然)做一个国家数组,然后我会把你的第二个下拉列表变成一个可计算的。该计算机将存储一个二维数组,一边是它所针对的国家,另一边是数据,即

{“澳大利亚”,"gday mate"},{“澳大利亚”,“更多下拉菜单!!”},{“美国”,“你好伙伴”},{“巴黎”,“法棍很好”}

然后,根据当时选择的国家/地区设置计算的筛选结果。

然后,当选择一个国家/地区时,您的计算结果将会更新(因为在第二个下拉列表的enable字段中,您会将该国家/地区设置为enable,以便在未选择任何国家/地区时禁用该国家/地区),因此您会有一个最新的下拉列表

或者按照这里的教程操作;) http://ryanrahlf.com/building-cascading-dropdowns-with-knockout-js/ - http://ryanrahlf.com/building-cascading-dropdowns-with-knockout-js-part-2-working-with-flat-data/

我不太确定它们有多好,因为我还没有做过,但是我看了看它们,它们看起来不错

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26244431

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档