У меня есть общая мастер-страница, которую я использую из 2 разных областей в моем приложении MVC 2. На главной странице есть ссылка действия, которая в настоящее время указывает контроллер и действие, но, конечно, ссылка не работает, если я нахожусь не в той области. Я не вижу перегрузки для actionlink, который принимает параметр области, это возможно сделать?
156
С чем-то, с чем я столкнулся сразу после этого, и я полагаю, что другие могут столкнуться с ним: если вам нужно связать из области действия с не в этой области, вам все равно нужно указать область как пустую строку.
Например, я переместил некоторый код MVC в область и обнаружил, что мне нужно обновить URL на главной странице, которая ссылается на другие страницы сайта.
Чтобы указать URL для чего-то не в области, используйте
источник
Использование:
Примечание : 4-й параметр - передать маршрут
Values
, если вы передадите пустой параметр, он будет учитывать корневую структуру, а если вы передадите соответствующее значение, он будет использоваться в качестве области.Также не забудьте использовать
null
илиnew{}
в качестве 5-го параметра, потому что передачаnull
илиnew {}
при создании ссылки действия не будет перегружать метод(text,action,controller,route data)
или,(text,action,controller,route data,html attribute)
поэтому используйте правильный методисточник
У
area="root"
меня в MVC2 подача работала как нижеисточник
Аккуратный трюк, который вы можете сделать, если вы часто используете область в представлении, это определить ее как переменную вверху:
источник
Вот то, что я придумал как решение, позволяющее пользователю связываться с предварительно созданными системами аутентификации.
Каждая из моих областей имеет версию файла _LoginPartial.cshtml.
Я, вероятно, мог заставить приложение использовать одну версию файла, однако я продолжал сталкиваться с ошибками при попытке использовать один частичный вход в систему.
Это лишь небольшая модификация исходного сгенерированного логина, но, похоже, он хорошо работает при использовании в определенных областях.
Вот код, который используется во всех них:
источник
htmlAttributes:
работала очень хорошо для использования нескольких параметров.Если вы не можете использовать стандартную ссылку веб-приложения, такую как About, Home, Contac и т. Д. Из области. Вы меняете линии
из
Views \ Shared_Layout.cshtml
источник
В моем приложении ASP Net Core я просто добавляю область к атрибутам html следующим образом:
источник
С помощью
Добьетесь того, что вы хотите.
DisplayText - это то, что будет отображаться (так же, как
<a href="#">DisplayText</a>
), ActionName - это метод, вызываемый в контроллере, а ControllerName - это, очевидно, контроллер, который вы хотите вызвать! Следующим параметром является «Значение маршрута», где вы бы добавили свою область. Если вы находитесь в области и хотите,Home/Index
например, вернуться к своему корню , вы бы оставили значение в виде пустой строки, напримерnew { area = ""}
. Конечное значение - «Атрибуты HTML», где вы добавляете класс, если хотите, и должны быть,null
если у вас нет атрибутов для добавления. Но как последний параметр рассматривается как «Атрибуты HTML»; для того, чтобы значения маршрута были распознаны, это должно бытьnull
источник