2009-11-09 52 views
0

我選擇通過一些我繼承的C#代碼,並嘗試在鏈接中顯示圖像的方式;這是行的工作,並顯示的形象,但我需要包裝這在一個鏈接。Response.write在一個HTML元素c#

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

後來我發現在那裏是一個鏈接元素,所以我想我可以複製這個(因爲它是正確的鏈接,我需要),將其套在HTML.PropImage line.Like這

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

我刪除了response.write,因爲它打破了頁面,我該如何在鏈接中呈現html.propimage?

感謝

+0

這是原單我採取的鏈接聲明; (string)ViewData [「PDate」],(string)ViewData [「PDuration」],(字符串) ViewData [「PSleeps」])%> – ivor 2009-11-09 12:55:01

+0

Html.PropImage和PropRefLink不是框架方法,所以我們可能很難理解這裏發生了什麼或者這些方法的行爲。此外,這是簡單的asp.net或是mvc? – Will 2009-11-09 12:55:45

+0

公共靜態字符串PropRefLink(這個HtmlHelper的HTML,字符串areaName,字符串的宴會名稱,字符串accomCode,字符串linktext,字符串日期,字符串持續時間,字符串睡眠) – ivor 2009-11-09 12:57:28

回答

0

由於函數只允許鏈接文字(或因此它從您的評論似乎)你最好的選擇是使用HTML持平。將鏈接文字更改爲:

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

這將在您的鏈接中呈現標準HTML圖像標記,並應按預期工作。

+0

嗨,感謝您的提示,我重新修改了這個鏈接,使用你的例子,並做了這個 Response.Write(「"+Html.PropImage(item.MainImage.ImageUrl095, item.AccomName)+"」); 這似乎工作 - 不知道是否是正確的做法,但? – ivor 2009-11-09 14:10:06

+0

如果不知道PropImage或PropRefLink方法實際上做了什麼,就很難判斷。然而,Reponse.Write,如果可能的話,通常是要避免的。 – AverageAdam 2009-11-09 14:20:34

+0

不!使用我提供的教程創建您自己的助手擴展方法。現有的幫助器方法顯然不會做你想做的事情,所以只需創建自己的(這是比以上更好的做法)response.write(Html.MyImageLink(「image」,「url」))應該在這樣的代碼標籤中完成:<%= Html.MyImageLink(「image」,「url」)%> – Mark 2009-11-09 14:44:56

0

我建議您最好創建自己的Html Helper擴展方法來創建包裝在鏈接元素中的img元素。你可以使用StringBuilder類此

HTMl Helper Tutorial

基本示例:

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(); 
     } 
    } 
} 

那麼您會在視圖中調用你的擴展方法如下:

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