首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >ListBoxFor不区分大小写

ListBoxFor不区分大小写
EN

Stack Overflow用户
提问于 2017-12-04 12:17:08
回答 1查看 159关注 0票数 0

在select中,我有两个选项具有相同的文本,但大小写不同:以testTEST为例。

从服务器上,我只接收一个选定的项测试。但是在UI中,我看到testTEST都被选中了。

代码语言:javascript
运行
复制
var tagsList = Model.AllTags.Select(t => new SelectListItem
{
    Value = t,
    Text = t
});

<div id="tags-list-container" class="review-tags__select" style="display: none;">
    @Html.ListBoxFor(m => m.SelectedTags, tagsList, new { id = "tags-list-box" })
</div>

有什么办法能改变我的选择吗?

首先,我认为这是由多个选择SumoSelect的第三方库引起的,但后来我尝试使用本机多选择并且发生了相同的事情--结果我有两个选择选项。

UPD:

目前,我对使用jquery设置选定值的想法如下:

代码语言:javascript
运行
复制
$('#tags-list-box').val('test');

但是,对于我来说,在ListBoxFor扩展中使用这一点会更好。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-12-04 21:27:00

在内部,ListBoxFor()方法生成自己的IEnumerable<SelectListItem>,以根据绑定到的属性的值设置Selected属性。

源代码中可以看到,private static IEnumerable<SelectListItem> GetSelectListWithDefaultValue()比较了使用StringComparer.OrdinalIgnoreCase的值,因此"test""TEST"的值都匹配,这两个选项都将使用selected="selected"属性进行设置。

如果要使用HtmlHelper方法生成正确的html以说明区分大小写的值,则需要编写扩展方法(使用源代码作为代码的模板)。

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

https://stackoverflow.com/questions/47633205

复制
相关文章

相似问题

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