包含字母和数字字符的订单下拉菜单
Order dropdown with alphabetic and numeric characters
我的 .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();
虽然我的 razor view 这样做:
<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>
我希望排序能够处理 number/letter 组合,或者至少显示一些排序,而大多数排序似乎都是错误的。我得到以下排序列表:
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
我的 .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();
虽然我的 razor view 这样做:
<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>
我希望排序能够处理 number/letter 组合,或者至少显示一些排序,而大多数排序似乎都是错误的。我得到以下排序列表:
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