2010-09-08 19 views
6

html.actionlink - asp.net mvc में छवि कैसे सम्मिलित करें?मैं HTML.ActionLink का उपयोग करके एक छवि कैसे सम्मिलित करूं?

मैंने ऐसा किया, लेकिन यह काम नहीं करता है।

<a href="<%= Html.ActionLink("search", "Search", new { searchText = "txtSearch" }, null); %>"> 
     <img alt="searchPage" style="vertical-align: middle;" height="17px" 
      src="../../Stylesheets/search.PNG" title="search" /> 

+1

मैं अत्यधिक url.Action() –

उत्तर

14

आप पूरी तरह ActionLink सहायक का दुरुपयोग कर रहे हैं। सहायक वास्तव में पूरे <a href=".." ></a> टैग का उत्पादन करता है।

<a href="<%= Url.Action("Search", new { searchText = "txtSearch" }) %>"> 
    <img alt="searchPage" style="vertical-align: middle;" height="17px" 
     src="../../Stylesheets/search.PNG" title="search" /> 
</a> 
+1

का उपयोग करने का सुझाव देता हूं आपका समाधान सभी –

+0

+1 पर काम नहीं करता है। धन्यवाद :) –

1

मैं इस समाधान के लिए एक सहायक बनाने:

क्या तुम सच में इस मामले में उपयोग करना चाहते हैं (अलग अपनी खुद की लिखी सहायक से) यह है। तो आप एक्शन लिंक में छवि शामिल नहीं कर सकते हैं। लेकिन इस सहायक वर्ग के साथ आप छवि को देखने के लिए बस एंकर जोड़ सकते हैं।

सिस्टम का उपयोग कर; System.Text का उपयोग कर ; System.Web.Mvc का उपयोग कर ; System.Web.Mvc.Html का उपयोग कर ; System.Web.Routing का उपयोग कर ; System.Web का उपयोग कर ; System.Security.Policy का उपयोग कर ;

namespace Helpers 
{ 
    public static class ActionWithImageHelper 
    { 
     public static string AnchorIm(this HtmlHelper helper) 
     { 

      var builder = new TagBuilder("img"); 
      var link = helper.ActionLink("[replaceInnerHTML]", "replaceAction").ToHtmlString(); 


       builder.MergeAttribute("src", "<imagePath>"); 
       builder.MergeAttribute("alt", "<altText>"); 

       var renderedLink = link.Replace("replaceAction", "<>"); 
       link = renderedLink; 


      return link.Replace("[replaceInnerHTML]",builder.ToString(TagRenderMode.SelfClosing)); 
     } 

    } 
} 

सौभाग्य

12

@Trimack 100% सही w/MVC2 है। लोगों MVC3 बराबर की तलाश कर रहे हैं, तो यहाँ यह

<a href="@Url.Action("Search", new { searchText = "txtSearch" })"> 
    <img alt="searchPage" style="vertical-align: middle;" height="17px" src="../../Stylesheets/search.PNG" title="search" /> 
</a> 
+0

मुझे लगता है कि आप रेज़र को व्यू इंजन के रूप में उपयोग कर रहे हैं, है ना? –

1

आप अपने View में बहु छवियों आप Html.ActionLink संपत्ति का उपयोग कर सकते प्रदर्शित करने के लिए जिन्हें आप नीचे देख चाहते हैं है ...। इस नमूने में मैं एक्शन कॉलम के तहत एक बटन के रूप में विस्तार/संपादन/हटाएं छवियों का उपयोग करता हूं।

नोट: प्रकार Title, Controller और अपनी परियोजना के अनुसार Html.ActionLink में Action नाम। यदि आप खाली शीर्षक का उपयोग करना चाहते हैं तो बस उनके लिए टाइप करें।

.... 
//for using multiple Html.ActionLink in a column using Webgrid 
grid.Column("Action", format: (item) => 
new HtmlString(
     Html.ActionLink("Show Details", "Edit", "Admin", new 
     { 
      applicantId = item.ApplicantID,    
      title = "Detail", 
      @class = "icon-link", 
      style = "background-image: url('../../Content/icons/detail.png')" 
     }, null).ToString() + 
     Html.ActionLink("Edit Record", "Edit", "Admin", new 
     { 
      applicantId = item.ApplicantID, 
      title = "Edit", 
      @class = "icon-link", 
      style = "background-image: url('../../Content/icons/edit.png')" 
     }, null).ToString() + 
     Html.ActionLink("Delete Record", "Edit", "Admin", new 
     { 
      applicantId = item.ApplicantID, 
      title = "Delete", 
      @class = "icon-link", 
      style = "background-image: url('../../Content/icons/delete.png')" 
     }, null).ToString() 
) 
) 
.... 


<style type="text/css"> 
    a.icon-link { 
     background-color: transparent; 
     background-repeat: no-repeat; 
     background-position: 0px 0px; 
     border: none; 
     cursor: pointer; 
     width: 16px; 
     height: 16px; 
     margin-right: 8px; 
     vertical-align: middle; 
    } 
</style> 

पूर्ण उदाहरण के लिए, आप कम से यहां नज़र आएगा: How to use WebGrid in a cshtml view?

सादर।

0
इसके बजाय @ Html.ActionLink ("linkname", "कार्रवाई" "नियंत्रक",) का उपयोग कर आप निम्नलिखित का उपयोग कर सकते

:

<a href='@Url.Action("action", "controller")'> 

"छवियों" के भंडारण के लिए मेरी फ़ोल्डर है इमेजिस। @Url.Content() पथ को जानना है। आप उस क्रिया के लिए @Url.Action() पर अपनी क्रिया और नियंत्रक को पास कर सकते हैं। @Url.Action()@Html.ActionLink() के समान काम करता है। अब आपका लिंक छवि द्वारा प्रतिस्थापित किया जाएगा।

+0

यह पूरा कोड है

संबंधित मुद्दे

 संबंधित मुद्दे