2009-11-09 7 views
0

Je sélectionne mon code C# dont j'ai hérité et j'essaie d'afficher une image dans un lien: c'est la ligne qui fonctionne, et montre l'image, mais je dois envelopper ceci dans un lien.Response.write dans un élément HTML C#

Response.Write(Html.PropImage(item.MainImage.ImageUrl095, item.AccomName)); 

j'ai remarqué plus tard, il est un élément de liaison, donc je pensais que je pouvais copier ce (comme il est le lien à droite j'ai besoin) et l'enrouler autour du HTML.PropImage line.Like cette

Html.PropRefLink(item.AreaName, item.AccomName, item.AccomCode, Html.PropImage(item.MainImage.ImageUrl095, item.AccomName), (string)ViewData["PDate"], (string)ViewData["PDuration"], (string)ViewData["PSleeps"]); 

J'ai enlevé le response.write car il cassait la page, comment puis-je html.propimage à rendre dans le lien?

Merci

+0

C'est le orginal déclaration de lien j'ai pris; <% = Html.PropRefLink (item.AreaName, item.AccomName, item.AccomCode, "Afficher les détails de la propriété", (chaîne) ViewData ["PDate"], (chaîne) ViewData ["PDuration"], (chaîne) ViewData ["PSleeps"])%> – ivor

+0

Html.PropImage et PropRefLink ne sont pas des méthodes de framework, il peut donc être difficile pour nous de comprendre ce qui se passe ici ou comment ces méthodes se comportent. Aussi, est ce plain asp.net ou est-ce mvc? – Will

+0

chaîne statique publique PropRefLink (ce HtmlHelper html, chaîne areaName, chaîne accomName, chaîne accomCode, string linktext, date de chaîne, durée de la chaîne, chaîne dort) – ivor

Répondre

0

Puisque la fonction ne permet que le texte du lien (ou il semble donc de votre commentaire) votre meilleur pari serait d'utiliser HTML plat. Remplacez le texte du lien par:

"<img src=\"" + item.MainImage.ImageUrl095 + "\" alt=\"\" />" 

Ceci affichera une balise d'image HTML standard dans votre lien et devrait fonctionner comme prévu.

+0

Salut, merci pour le conseil là-bas, j'ai retravaillé le lien un peu en utilisant votre exemple et l'ai fait Response.Write (""+Html.PropImage(item.MainImage.ImageUrl095, item.AccomName)+""); cela semble fonctionner - pas sûr si c'est la bonne pratique cependant? – ivor

+0

Il est vraiment difficile de juger sans savoir ce que font réellement les méthodes PropImage ou PropRefLink. Réponse. Cependant, l'écriture doit généralement être évitée si possible. – AverageAdam

+0

non! Créez votre propre méthode d'extension d'aide en utilisant le tutoriel fourni. Les méthodes d'assistance existantes ne font clairement ce que vous voulez donc créez simplement votre propre (c'est une meilleure pratique que ci-dessus) aussi response.write (Html.MyImageLink ("image", "url")) devrait être fait dans les balises de code comme ça : <% = Html.MyImageLink ("image", "url")%> – Mark

0

Je suggérerais qu'il est préférable de créer votre propre méthode d'extension Helt Html pour créer un élément img enveloppé dans l'élément de lien. vous pouvez utiliser la classe StringBuilder pour cette

HTMl Helper Tutorial

de base Exemple:

using System; 
using System.Web.Mvc; 
using System.Text; 

namespace MvcApplication1.Helpers 
{ 
    public static class ImageHelpers 
    { 
     public static string ImageLink(this HtmlHelper helper, string imagepath, string url) 
     { 
      StringBuilder sb = new StringBuilder(); 
      sb.Append("<a href=\"" + url + "\">"); 
      sb.Append("<img src=\"" + imagepath + "\" />"); 
      sb.Append("</a>"); 
      return sb.ToString(); 
     } 
    } 
} 

Ensuite, vous appelez votre méthode d'extension de votre vue comme suit:

<%= Html.ImageLink("imagepath","theurl") %> 
Questions connexes