передающие видеоданные на asp.net mvc masterpages

Я бы рекомендовал использовать понимание приложения с функциями Azure. Информация о приложении имеет более глубокую интеграцию с функциями Azure и является рекомендуемым способом настройки Google Analytics для вашего приложения. Есть ли конкретная причина, по которой вы хотите настроить Log Analytics вместо Application Insights?

6
задан codette 31 March 2009 в 17:47
поделиться

6 ответов

Если это имеет значение я использую метод из того учебного руководства в текущем проекте, и это работает очень хорошо.

То, что можно также сделать, если это - данные, которые несколько статичны (как меню, которое не изменяется очень), должно поместить объект на кэш, таким образом, базу данных не называют для каждой инициализации контроллера.

1
ответ дан 16 December 2019 в 21:46
поделиться

Основная страница уже имеет доступ к ViewData. Если Вы хотите доступ со строгим контролем типов к нему, необходимо сделать две вещи:

  1. Поместите основной материал страницы в базовый класс (например, CommonViewData)
  2. Имейте Вас, основная страница наследовала от универсального ViewMasterPage <> класс:

    " %>
4
ответ дан 16 December 2019 в 21:46
поделиться

Я не вполне получаю Вашу проблему...

Проблемой, на которую я смотрю, является то, что, если я помещаю пользовательский элемент управления в свой masterpage, который полагается на ViewData, я должен НЕОДНОКРАТНО включать тот ViewData для каждой страницы, которая использует, сказал masterpage.

Хорошо да..., конечно, Вы делаете. Если у Вас есть usercontrol на Вашей основной странице затем, конечно, Вы оказываетесь перед необходимостью передавать необходимые данные для этого usercontrol для каждого действия и представления, которое использует это masterpage.

Это не похоже на Вас, должны повторить себя, если Вы просто наследовались основному контроллеру.

Действительно ли Вашей проблемой является то, что некоторые контроллеры имеют действия, что и сделайте и не называйте представления, которые происходят из того конкретного masterpage? Поэтому при реализации основного контроллера действия, которые не используют тот конкретный masterpage, будут все еще иметь видеоданные для него...? (Если все, что имеет смысл ;-)

0
ответ дан 16 December 2019 в 21:46
поделиться

Другой пример, конечно же, Rake , система сборки Ruby. Что делает DSL «хорошим», на мой взгляд:

  1. Нотация соответствует значению, т.е. если вы читаете предложение (утверждение) в DSL, у вас есть ясное, недвусмысленное представление о том, что он делает.
  2. Зависит от предметной области. , т.е. DSL не решает все проблемы во вселенной, а скорее фокусируется на одной маленькой области (такой как создание программного обеспечения, запрос данных или создание пользовательских интерфейсов)
  3. Высокий уровень абстракции. DSL использует концепции высокого уровня, которые может использовать программист, и переводит их на реализацию более низкого уровня (внутреннюю). В случае с Rake основной концепцией, на которой основан язык, являются задачи и зависимости между ними.
2
ответ дан 16 December 2019 в 21:46
поделиться

I usually use an abstract controller class for my MasterPage, it is the best solution, because the MasterPage is like an "abstract view". But I override the MasgerPageController View() method to include the viewdata.

protected override ViewResult View(string viewName, string masterName, object model)
{
    this.ViewData["menu"] = this.PagesRepository.GetPublishPages();
    return base.View(viewName, masterName, model);
}
1
ответ дан 16 December 2019 в 21:46
поделиться

Я думаю, что предложенное решение работает, но не является идеальным. Если мы поместим код в конструктор BaseController, он будет вызываться даже для методов Action, у которых нет MasterPages (например, методы Post и методы Ajax).
Я думаю, что лучшим решением (не идеальным) является вызов метода Html.Action на главной странице.

0
ответ дан 16 December 2019 в 21:46
поделиться
Другие вопросы по тегам:

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