问题描述
public List<NameUlici> GetAllNameUlici()
{
using (var con = new sqlConnection(ConnectionStringManager.GetConnectionManager()))
{
var model = con.Query<NameUlici>("GetNameUlici",commandType: CommandType.StoredProcedure).ToList();
return model;
}
}
这是存储过程,它只返回街道名称
ALTER PROCEDURE [dbo].[GetNameUlici]
AS
SELECT name,ime_1251
FROM ULICI_KARPOS
RETURN
然后回到控制器我去
public ActionResult GetAllStreets()
{
var result = dataRepo.GetAllNameUlici();
return Json(result);
}
然后我用这些值填充下拉列表。我得到的值是西里尔字母,所以我不确定如何按名称排序,比如 A - Z。 目前,我有这样的事情
$.getJSON(url,function (streets) {
$("#streetNameID").append('<option></option>');
$.each(streets,function (index,value) {
$("#streetNameID").append('<option value="' + value.ime_1251 + '">' + value.ime_1251 + '</option>');
});
});
但是下拉值到处都是 - 未排序,同时降序和升序。关于如何进行的任何建议?
解决方法
您“编写”<option>
的方式非常糟糕。如果 "
内有 <
或 ime_1251
,一切都会中断...
$("#streetNameID").append(new Option(value.ime_1251,value.ime_1251));
还是。您的问题似乎是 C# 方面的……在您所有的 C# 代码中,我没有看到一些东西:排序。考虑到您使用的是存储过程,您可以对 SP 内的数据进行排序:
SELECT name,ime_1251
FROM ULICI_KARPOS
ORDER BY ime_1251
RETURN
或者你可以在C#端对数据进行排序:
var model = con.Query<NameUlici>("GetNameUlici",commandType: CommandType.StoredProcedure)
.OrderBy(x => x.ime_1251)
.ToList();