Я заметил нечто странное в своем проекте MVC. Я вернулся к ванильной версии, чтобы попробовать, и обнаружил, что следующее (последний пункт списка - мое единственное дополнение к проекту, за исключением действия Test в контроллере, возвращающего только пустой экземпляр View) работает хорошо.


Однако, когда я добавил стиль к ссылке действия следующим образом, я получаю ошибку. Он работает по-прежнему, но теперь VS remarks, и когда я проверяю замечание, он спрашивает меня, хочу ли я создать новый контроллер Shared и действие Test.


Почему это так? Является ли это вообще реальной проблемой?

Ответы (1)

Существует конечно большое количество перегрузок этого метода. Ваша "рабочая" версия, вероятно, обращается к этой, которая явно ссылается на контроллер "Home", как и ожидалось:

ActionLink("Test", "Test", "Home")

Как бы то ни было, ваша "неработающая" версия, похоже, разумно разрешится этой, которая "работает" для атрибутов HTML, но изменяет значение "Home" в данном случае, рассматривая его как значение маршрута (которое, вероятно, не разбирается на что-то полезное и игнорируется):

ActionLink("Test", "Test", "Home", new { @style = "color: blue;" })

Действительно ли он генерирует правильный маршрут в ссылке на стороне клиента? Если да, то я бы посчитал это удачным совпадением, но не стал бы на это полагаться.

Вероятно, вы ищете эту перегрузку, которая будет выглядеть следующим образом:

ActionLink("Test", "Test", "Home", null, new { @style = "color: blue;" })

2022 WebDevInsider