2012-10-02 26 views
5

Mam problem ze składnią Razor z MVC (4), mając nadzieję znaleźć kogoś, kto może mi pomóc z miłym i działającym rozwiązaniem.Jak utworzyć logo (obraz) Nagłówek z MVC (4)

Chcę klikalne logo (zdjęcie) i utworzyłem następujący kod. Działa to z wyjątkiem dwóch rzeczy. Nie widzę obrazu, a po drugie, gdy w innym kontrolerze, routing idzie źle (błąd http4).

ten sposób zrobiłem to teraz:

Razor:

<h1>@Html.ActionLink("siteHeader", "Index", null, new { @class = "site-logo"})</h1> 

LUB

<h1>@Html.ActionLink("siteHeader", "Index", "Home", new { @class = "site-logo"})</h1> 

np gdy w innym kontrolerze (. konto/Shoppingcart/etc), po kliknięciu w logo, to skutkuje 404.

CSS:

/strony HeaderLogo/

a.site-logo {  
background: url(images/Solosoft.png) no-repeat top left; 
display: block;  
width: 100px;  
height: 100px;  
text-indent: -9999px; /*hides the link text*/ 
    } 

Dzięki z góry.

Odpowiedz

2

Spróbuj tego:

@Html.ActionLink("siteHeader", "Index", "Home", null, new { @class = "site-logo"}) 

to:

public static MvcHtmlString ActionLink(
    this HtmlHelper htmlHelper, 
    string linkText, 
    string actionName, 
    string controllerName, 
    Object routeValues, 
    Object htmlAttributes 
) 

Link: msdn

+0

Ok, thanx. Już prawie tam byłam: P Teraz muszę tylko dowiedzieć się, dlaczego nie widzę rzeczywistego obrazu. – RocketRon

+0

@ user1714323 Otwórz narzędzia deweloperskie w przeglądarce i na karcie sieci, myślę, że zobaczysz błąd 404. Sprawdź ścieżkę URL, teraz próbujesz znaleźć obrazy w folderze kontrolera, takim jak '/ Home/images/Solosoft.png' – webdeveloper

+0

Dzięki za wsparcie. Problem z obrazem polegał na tym, że musiałem poprawnie ustawić pomiary w css. Teraz jestem gotowy. – RocketRon

1

mam przyczynę problemu!

Tam nic złego w naszym kodowania, jest to, że tu jest klasa zastępuje nasz obraz ustawiony

theres ten linie w Site.css

.site-title a, .site-title a:hover, .site-title a:active { 
    *background: none;* <=comment this out and the bg will show or remove the .site-title a 
    color: #c8c8c8; 
    outline: none; 
    text-decoration: none; 
} 

nadzieję, że pomoże

0

Co wizzardz powiedział jest poprawne. Styl tła w niestandardowym pliku css jest nadpisywany przez style w pliku site.css.

Spróbuj tego, !important - użyj, aby nadać priorytet stylom pojawiającym się na stronie.

na stronie custom.css,

a.site-logo {  
    background: url(images/Solosoft.png) no-repeat top left **!important**; 
    display: block;  
    width: 100px;  
    height: 100px;  
    text-indent: -9999px; /*hides the link text*/ 
} 

Nie trzeba nic zmieniać w site.css