Как установить ActionLink как изображение - PullRequest
0 голосов
/ 03 января 2012

У меня есть маленький вопрос. Как установить ActionLink как изображение для чего-то подобного:

 <%= Html.ActionLink("English", "ChangeCulture", "Account",
 new {lang = "en", returnUrl = this.Request.RawUrl }, null)%>

Для других ActionLink я сделал что-то вроде этого:

 Html.ActionLink(" ", "About", "Home", new
 {style = "background: url('../../Content/images/img03.jpg')no-repeat center
 right;display:block; height:24px; width:24px;"})    

Но для этого примера это не работает. Я хочу добавить локализацию на свой сайт в виде изображений флагов. Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 05 января 2012

Я решил это с помощью html helper

но я бы порекомендовал использовать TagBuilder для этого.

  /// <summary>
  /// Create image representation of boolean in form of
  /// </summary>
  /// <param name="html">The HTML.</param>
  /// <param name="boolValue">if set to <c>true</c> [bool value].</param>
  /// <param name="path">The path.</param>
  /// <param name="alt">The alt.</param>
  /// <returns>
  /// html img tag
  /// </returns>
public static string ImageForBool(this HtmlHelper html, bool boolValue, string path,ImageAlt alt)
{
  string trueVal = "tick";
  string falseVal = "x";
  string img = "<img src=\"{0}\" {1}/>";
  string altTag = string.Empty;
  path += "Content/Actions/";
  if (boolValue)
  {
    altTag = (alt == null) ? "" : "alt=\"" + alt.trueOption + "\"";
    return string.Format(img, Path.Combine(path, trueVal) + ".png", altTag);
  }
  else
  {
    altTag = (alt == null) ? "" : "alt=\"" + alt.falseOption + "\"";
    return string.Format(img, Path.Combine(path, falseVal) + ".png", altTag);
  }
}

эта опция, возможно, лучшая для вас

Альтернативный способ

используйте ссылку на действие html и используйте string.replace используя ваш код:

string tag = Html.ActionLink("[toReplaceWithImage]", "ChangeCulture", "Account",
 new {lang = "en", returnUrl = this.Request.RawUrl }, null).ToString()

tag.Replace("[toReplaceWithImage]", "<img src=\"path\">");
0 голосов
/ 03 января 2012

Я вижу несколько вопросов здесь ...

Во-первых, вы устанавливаете параметр routeValues ​​в ActionLink с вашим стилем HTML. Добавьте нулевой объект между ними:

Html.ActionLink(" ", "About", "Home", null, new
 {style = "background: url('../../Content/images/img03.jpg')no-repeat center
 right;display:block; height:24px; width:24px;"})

Во-вторых, вы захотите проверить правильность URL-адреса изображения, поскольку используете относительный путь. Попробуйте вместо этого использовать Url.Content, чтобы получить правильный путь.

В-третьих, отсутствие пробела между url и флагом no-repeat может повлиять на вывод вашего браузера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...