2012-10-02 12 views
5

Sono in difficoltà con una sintassi Razor con MVC (4), sperando di trovare qualcuno che possa aiutarmi con una soluzione piacevole e funzionante.Come creare un logo di intestazione (immagine) con MVC (4)

Desidero un logo cliccabile (immagine) e creato il seguente codice. Funziona tranne due cose. Non vedo la visualizzazione dell'immagine e in secondo luogo, quando in un altro controller, il routing non funziona (errore http4).

Questo è il modo che ho fatto subito:

Razor:

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

O

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

esempio quando in un controller diverso (. conto/shoppingcart/etc) e cliccando sul logo, si traduce in un 404.

CSS:

/sito 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*/ 
    } 

Grazie in anticipo.

risposta

2

Prova questa:

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

Si tratta di:

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

Link: msdn

+0

Ok, thanx. Ero quasi arrivato: P Ora, devo solo scoprire perché non vedo l'immagine reale. – RocketRon

+0

@ user1714323 apri gli strumenti di sviluppo nel browser e nella scheda di rete, penso, vedrai l'errore 404. Controlla il tuo percorso url, ora stai cercando di trovare immagini nella 'cartella' del controller, come '/ Home/images/Solosoft.png' – webdeveloper

+0

Grazie per il tuo supporto. Il problema con l'immagine era che dovevo impostare correttamente le misure in css. Sono attivo e funzionante ora. – RocketRon

1

ho ricevuto la causa del problema!

Theres niente di sbagliato con il nostro codice, la cosa è Theres una classe che sostituisce la nostra immagine impostata

Theres questo le linee in 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; 
} 

Speranza che aiuta

0

Cosa wizzardz detto è corretta. Lo stile di sfondo nel file css personalizzato è sovrascritto dagli stili in site.css.

Prova questo, !important - utilizzato per dare la priorità agli stili di apparire nella pagina web.

Nella pagina 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*/ 
} 

Non c'è bisogno di cambiare qualcosa nella site.css

Problemi correlati