Say У меня есть 3 версии веб-сайта: A, B и C. Я хочу, чтобы мои URLs, чтобы быть в форме:Как автоматически включать сегмент в URL с Asp.Net MVC
{siteType}/{controller}/{action}/{id}
где siteType
равно a
, b
или c
.
Когда пользователь находится в версии веб-сайта A, они должны оставаться там; поэтому все сгенерированные URL-адреса должны иметь тип сайта a
. Аналогично для B и C.
Я не хочу явно указывать siteType
при создании URL-адресов - я хочу, чтобы он сгенерирован автоматически. Кроме того, параметр siteType
будет использоваться только в одном месте - переопределенный метод RenderView
в классе базового контроллера - который будет использовать параметр siteType для выбора правильного представления, css и т. Д. Для этой версии веб-сайта. Поэтому я не заинтересован в siteType
, являющемся аргументом для моих действий. Только метод RenderView
требует доступа к нему.
Каков наилучший способ достичь этого?
Да, но дело в том, что я не хочу добавлять siteType для каждого ActionLink или к любому другому URL-адресу, который сгенерирован. Поскольку это делается везде, я должен иметь возможность автоматически добавлять его в одном месте. – darasd
вам не нужно добавлять siteType к каждому URL-адресу «рукой». Установите его один раз в стандартной процедуре, и он будет добавлен. Если вы хотите переключиться между SiteTypes, вам нужно добавить siteType к этой ссылке действия. Все мои ссылки похожи на: <% = Html.ActionLink («Linktext», «Action», «Controller»%> за исключением того, что переключает язык. ActionLink отображает ссылку и автоматически добавляет сайтType к чему-то вроде: Linktext – griti
Знаете, я думаю, что вы правы! Кажется, это добавлено автоматически, и вместо текущего значения, если не добавить явно, например, ActionLink, следует использовать значение текущего url, а не значение по умолчанию. – darasd