c# - 带有字母和数字字符的订单下拉菜单
问题描述
我的 .NET Core 应用程序中有一个要排序的下拉列表,存在以下选项:
Multimachine
2-machine
Longmachine
Cutter
Vshape
4-machine
Cooler
Infeedmachine
3-Machine
Mainmachine
我想我可以简单地使用 LINQ 对这个选项列表进行排序;所以我会在我的控制器中使用以下内容:
ViewModel.MachineData = ViewModel.MachineData.OrderBy(m => m.Name.ToString()).ToList();
虽然我的剃刀观点是这样的:
<div class="form-group">
<label>Machine</label>
<select asp-for="Machine.ID" id="MachineName" class="form-control" >
@foreach (var Machine in Model.MachineData)
{
<option value="@Machine.ID">@Machine.Name</option>
}
</select>
</div>
我希望排序能够处理数字/字母组合,或者至少显示一些排序,而大多数排序似乎是错误的。我得到以下排序列表:
Cooler
Cutter
Vshape
4-machine
Longmachine
Multimachine
Mainmachine
Infeedmachine
3-Machine
2-machine
我的代码有问题吗?还是我需要过滤掉我的号码?我想先得到字母数字,然后是数字;或者相反,如果这更容易实现。
解决方案
您是否尝试过直接在视图中执行此操作?
<div class="form-group">
<label>Machine</label>
<select asp-for="Machine.ID" id="MachineName" class="form-control" >
@foreach (var Machine in Model.MachineData.OrderBy(m => m.Name.ToString()).ToList())
{
<option value="@Machine.ID">@Machine.Name</option>
}
</select>
</div>
一般来说,你的代码不应该是错的:https ://dotnetfiddle.net/MxvEXb
推荐阅读
- react-native - 从 createBottomTabNavigator 导航到 createStackNavigator 页面不起作用
- python-3.x - 插值和插补有什么区别?
- kubernetes - 使用 istio 通过外部代理引导 http 流量
- mysql - node_modules/mysql/lib/protocol/Parser.js:437 抛出错误;// 重新抛出非 MySQL 错误
- c - 我可以避免读取等待输入吗
- loops - WooCommerce 自定义循环 - 属性过滤器不起作用
- .htaccess - 在 opencart 中未检测到 HTTP 安全标头
- c# - 在 C# 中创建共享帐户签名
- sql - SQL - 错误代码“查询块的结果列数不正确”
- matlab - 相同的 S-Function 使用了两次,一个有效,一个无效