2017-01-21 14 views
0

Я пытаюсь извлечь текущую страницу из моего общего расположения в .net-приложении mvc, чтобы я мог загружать другую иконку значка для двух разных страниц..NET MVC получает текущую страницу и контроллер в общем макете

Я пытался что-то вроде следующего:

@if (Request.Url.AbsoluteUri.ToString().ToLower().Contains("/Analyze/Index")) 
{ 

    <link rel="icon" type="image/png" href="/favicon.png" /> 
} 

Но это не работает ...

Как я могу принести текущий контроллер и посмотреть, что пользователь во время просмотра веб-сайта, так что я могу загрузить этот значок в своем браузере?

+1

Почему бы вам не передать его как ViewData от контроллера, чтобы вы могли иметь разные изображения favicon для разных contollers/actions. – LKC

+0

@ LKC ах хороший момент, как хорошо! =) Thx для идеи :) – User987

ответ

3

Вы можете получить имя текущего контроллера & имя метода действия из вашего словаря RouteData.

@{ 
    var controllerName = string.Empty; 
    object controllerObj; 
    var actionName = string.Empty; 
    object actionObj; 

    if (ViewContext.RouteData.Values.TryGetValue("controller", out controllerObj)) 
    { 
     controllerName = controllerObj.ToString(); 
    } 

    if (ViewContext.RouteData.Values.TryGetValue("action", out actionObj)) 
    { 
     actionName = actionObj.ToString(); 
    } 
} 
+0

, поэтому я должен просто сделать: if controllername == "проанализировать" && actionname == "index" {// загрузить здесь favicon? } – User987

+1

Сделайте снимок .. – Shyju

+1

работает как шарм, ty =) – User987