Как визуально разделить ссылки действий в безопасности в ASP.NET MVC - PullRequest
1 голос
/ 22 февраля 2010

Я экспериментирую со связанными с безопасностью ссылками действий в ASP.NET MVC и собираюсь использовать вспомогательный метод SecurityTrimmedActionLink , описанный здесь (с некоторыми изменениями).* То, что я хотел бы сделать, это поставить вертикальную черту между каждой ссылкой, как это:

link1 | link2 | link3

Но я не хочу, чтобы две вертикальные полосы появлялись между ссылками, если ссылка была обрезанаМетод возвратит пустую строку), и не может быть никаких вертикальных полос, если нет ссылок или только одна ссылка появляется.Вспомогательный метод SecurityTrimmedActionLink не может помочь с вертикальными чертами;он не будет знать о других ссылках.

Может ли это быть достигнуто с помощью простой логики в представлении?

1 Ответ

0 голосов
/ 22 февраля 2010

Подумав немного, я создал новый метод HtmlHelper:

using System.Text;

namespace System.Web.Mvc.Html
{
    public static class HtmlHelpers
    {
        public static string Delimit(
             this HtmlHelper h, string delimiter, params string[] s)
        {
            bool flag = false;
            StringBuilder b = new StringBuilder();
            for (int i = 0; i < s.Length; i++)
                if (s[i].Length > 0)
                    if (flag)
                        b.Append(delimiter + s[i]);
                    else
                    {
                        flag = true;
                        b.Append(s[i]);
                    }
            return b.ToString();
        }
    }
}

Что должно позволить мне написать:

<% =Html.Delimit("|", 
        Html.SecurityTrimmedActionLink(...),
        Html.SecurityTrimmedActionLink(...),
        ...
    ); 
$>
...