Он называется catch-all queries, и в основном он выглядит следующим образом:
CREATE PROCEDURE spTest
@Name varchar(20) = '',
@Address varchar(100) = '',
@City varchar(50) = '',
@Pin varchar(50) = ''
AS
SELECT *
FROM Test_Table
WHERE (@Name = '' OR Name = @Name)
AND (@Address = '' OR Address = @Address)
AND (@City = '' OR City = @City)
AND (@Pin = '' OR Pin = @Pin);
GO
Вы также можете прочитать эту статью о catch all query
Никакого волшебства, класс System.Web.Routing.RouteCollection имеет свойство RouteExistingFiles, которое управляет поведением.
Значение по умолчанию - false, что означает, что маршрутизация ASP не должна маршрутизировать URL-адрес, а просто верните содержимое по умолчанию. В этом случае "/Content/all.min.css?v=251" полностью пропускает правила маршрутизации MVC.
если вы хотите добавить правило маршрутизации для папки содержимого, вам необходимо добавить правило и установить RouteExistingFiles значение true.
Нет, папка Content не священна. Используйте его, как Вам нравится.
Ре версия - который является общим приемом для помощи с управлением версиями, если Вам включили основанное на http-заголовке кэширование; иначе Вы не можете гарантировать, что все клиенты используют обновленные файлы. Вы будете видеть много "foo_v4.js" и т.д. в сети;-p
Я использую ту же технику на некоторых моих сайтах. Я использую его, чтобы не кэшироваться - если Вы не указываете другой URL для различных сборок, клиенты, возможно, кэшировали старый.
Только для добавления к другим комментариям об этом - способ, которым работает система маршрутизации, следующие:
запрос А входит и направлен к механизму маршрутизации, который затем просматривает таблицу маршрутизации для соответствия - в порядке, они регистрируются (который является, почему необходимо поместить уточненные маршруты перед более общими маршрутами).
, Если никакое соответствие не найдено, механизм маршрутизации передает запрос на IIS для обработки обычно - это также, как можно смешать веб-формы ASP.NET и MVC в том же приложении.
Это не имеет никакого особого значения. Это - просто имя arbitratry. При использовании мастера ASP.NET MVC RC, Вы найдете, что на него ссылаются в Вашей основной странице (Site.master):
<link href="../../Content/Site.css" rel="stylesheet" type="text/css" />
относительно all.min.css, используемого в Так, это мог быть пользовательский обработчик, который выполняется на сервере для получения сжатой таблицы стилей версией.