Как указать, что область называет в ссылке действия?

У меня есть поделившаяся основная страница, которую я использую из 2 различных областей в моем приложении mvc 2. Основная страница имеет ссылку действия, которая в настоящее время указывает контроллер и действие, но конечно ссылка не работает, если я нахожусь в неправильной области. Я не вижу перегрузки для actionlink, который берет параметр области, действительно ли возможно сделать?

154
задан Eilon 18 January 2010 в 03:34
поделиться

2 ответа

В общем и обобщенном виде

Сильные указатели гарантируют их собственную действительность. Используйте их, например, когда:

  • Вы владеете объектом, на который указывают; вы создаете и уничтожаете его
  • У вас нет определенного поведения, если объект не существует
  • Необходимо принудительно убедиться, что объект существует.

Слабые указатели гарантируют знание их собственной действительности. Используйте их, например, когда:

  • Вы получаете доступ к нему, но он не ваш.
  • Определено поведение, если объект не существует

Блокировка () на слабом указателе возвращает сильный указатель; вот как вы получаете доступ к слабому указателю. Если объект больше не является допустимым (он был удален и т.д.), то сильный указатель будет иметь значение NULL, в противном случае он будет указывать на объект. Вам нужно будет проверить это.

Это настроено таким образом, что вы не можете случайно удалить объект во время его использования, потому что вы сделали временный (локальный) сильный указатель, и, таким образом, гарантировал существование объекта, в то время как сильный указатель остается. По завершении использования объекта, как правило, сильный указатель выпадает из области действия (или переназначения его), что позволяет удалить объект. Для многопоточности, относитесь к ним с той же осторожностью, что и к другим вещам, которые не имеют встроенной безопасности потоков, отмечая, что гарантия, о которой я говорил выше , будет удерживаться при многопоточности. АФАИК они не делают ничего особенного в прошлом.

Общие указатели повышения также имеют такие же функции, как и сборщик мусора, так как когда последний сильный указатель на объект уходит или указывает где-то еще, объект удаляется.

В других ответах также указаны рабочие характеристики и циклические зависимости.

По сути, я бы сказал, что библиотека общих указателей Boost позволяет не путать создание программы, но она не заменяет собой время, необходимое для правильного проектирования указателей, владения объектами и времени жизни. При наличии такой конструкции можно использовать библиотеку для ее применения. Если у вас нет такого дизайна, вы, скорее всего, столкнетесь с другими проблемами, чем раньше.

-121--1158692-

Иногда Cygwin переносит списки ACL в файлы, вероятно, вам придется использовать cacls или chmod, чтобы исправить его, прежде чем вы сможете удалить файл.

-121--2267775-

Вычислил..

Html.ActionLink("Link Text", "ActionName", "ControllerName", new { Area = "AreaName" }, new{})
243
ответ дан 23 November 2019 в 21:59
поделиться

Сразу после этого я столкнулся с чем-то, с чем, как я полагаю, могут столкнуться другие: если вам нужно связать из области с действием вне области, вам все равно нужно указать область как пустую строку.

Например, я переместил некоторый код MVC в область и обнаружил, что мне нужно обновить URL-адреса на главной странице, которые ссылаются на другие страницы сайта.

Чтобы указать URL-адрес для чего-то вне области, используйте

Html.ActionLink("home", "Index", new { area = "", controller = "Home" })
77
ответ дан 23 November 2019 в 21:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: