HTML元素中的Response.write c#

时间:2009-11-09 12:50:26

标签: c# .net asp.net asp.net-mvc

我正在通过我继承的一些c#代码,并尝试在链接中显示图像;这是有效的行,并显示图像,但我需要将其包装在一个链接中。

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

我后来注意到有一个链接元素,所以我想我可以复制它(因为它是我需要的正确链接)并将它包装在HTML.PropImage行周围。就像这个

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?

由于

2 个答案:

答案 0 :(得分:0)

由于该功能仅允许链接文本(或者从您的评论中看起来如此),因此最好的选择是使用平面HTML。将链接文本更改为:

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

这将在您的链接中呈现标准HTML图像标记,并且应该按预期工作。

答案 1 :(得分:0)

我建议您最好创建自己的Html Helper扩展方法,以创建包含在link元素中的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") %>