Python рассматривает заглавные буквы как строчные. Если вы хотите отсортировать, игнорируя чувствительность к регистру. Вы можете сделать что-то вроде этого:
a = ['aaa','Bbb']
a.sort(key=str.lower)
print(a)
Outputs:
['aaa', 'Bbb']
, который игнорирует регистр чувствительности. Ключевой параметр "str.lower" - это то, что позволяет вам сделать это. Следующая документация должна помочь. https://docs.python.org/3/howto/sorting.html
Маршруты MVC проверяются в порядке, что они вводятся.
Mysite/blah будет найден маршрутом по умолчанию. Контроллер будет вздором, и действие является индексом.
При вводе маршрута mysite/blah/blah/blah/blah, Вы дали ему маршрут, на который он не мог отобразить маршрут по умолчанию, и затем Ваш всеобъемлющий маршрут назвали.
Для тех других примеров Вы замечали, была ли у них некоторая ошибочная установка фильтров? Я вполне уверен, asp.net по умолчанию mvc сайт уже имеет некоторые атрибуты обработки ошибок на страницах.
Ваш первый маршрут поймает большинство URL, так как у Вас есть значения по умолчанию для элементов, можно визуализировать это использование отладчика маршрута от Phil Haack, видеть ссылку:
Для обработки ошибок, я использовал событие Application_Error в одном из моих проектов:
protected void Application_Error(object sender, EventArgs e)
{
Exception exception = Server.GetLastError();
HttpException httpException = exception as HttpException;
if (httpException != null)
{
RouteData routeData = new RouteData();
routeData.Values.Add("controller", "Error");
routeData.Values.Add("action", "HttpError500");
if (httpException.GetHttpCode() == 404)
{
routeData.Values["action"] = "HttpError404";
}
Server.ClearError();
Response.Clear();
IController errorController = new ErrorController();
errorController.Execute(new RequestContext(new HttpContextWrapper(Context), routeData));
}
}