2

私はresponse.redirectを使用して同じページのリンクを開くURLを保持していますが、新しいタブでリンクを開くには他に何ができますか?

public partial class DocumentLink : System.Web.UI.UserControl
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if(!Page.IsPostBack)
        {
            try
            {
                Sitecore.Data.Fields.LinkField linkField = SitecoreItem.CurrentItem.Fields["DocumentLink"];
                Response.Redirect(GetUrl(linkField));
            }
            catch (Exception ex)
            {
                Sitecore.Diagnostics.Log.Error(ex.ToString(), this);
            }
        }
    }

    public string GetUrl(Sitecore.Data.Fields.LinkField LinkField)
    {
        try
        {
            string url = "";
            switch (LinkField.LinkType)
            {
                case "internal":
                case "external":
                case "mailto":
                case "anchor":
                case "javascript":
                    url = LinkField.Url;
                    break;
                case "media":
                    MediaItem media = new MediaItem(LinkField.TargetItem);
                    url = Sitecore.StringUtil.EnsurePrefix('/', MediaManager.GetMediaUrl(media));
                    break;
                case "":
                default:
                    break;
            }

            return url;
        }
        catch (Exception ex)
        {
            Sitecore.Diagnostics.Log.Error(ex.ToString(), this);
            throw;
        }
    }
}
4

3 に答える 3

0

Sitecore のリンク Web コントロールを使用して、それにフィールド名を渡すことができます。Sitecore は、GenralLinkField のすべての属性を自動的にレンダリングします。

<sc:Link runat="server"  Field="DocumentLink">
于 2013-04-06T19:54:11.620 に答える