Загрузка образа ASP.NET MVC при обновлении - PullRequest
0 голосов
/ 17 июля 2010

Я пытаюсь выяснить, как выполнить загрузку образа ASP.NET MVC на сервере при обновлении.По сути, у меня есть массив изображений, которые я хотел бы повернуть при обновлении на странице.Я знаю, как это сделать в jQuery, но проблема в том, что все изображения загружаются одновременно [что отстает с точки зрения производительности]

Кто-нибудь знает, как я мог это сделать?

В настоящее времяJS выглядит как ниже, но я действительно хочу это на стороне сервера:

function random_imglink(){
  var myimages=new Array()
  //specify random images below. You can have as many as you wish
  myimages[1]="img1.gif"
  myimages[2]="img2.gif"
  myimages[3]="img3.gif"

  //specify corresponding links below
  var imagelinks=new Array()
  imagelinks[1]="http://www.example1.com/"
  imagelinks[2]="http://www.example2.com"
  imagelinks[3]="http://www.example3.com"

  var ry=Math.floor(Math.random()*myimages.length)

  if (ry==0)
     ry=1
     document.write('<a href='+'"'+imagelinks[ry]+'"'+'><img src="'+myimages[ry]+'" border=0></a>')
}

  random_imglink()

Thx

1 Ответ

2 голосов
/ 17 июля 2010

Как насчет написания помощника:

private static Random _random = new Random();
public static MvcHtmlString RandomImage(this HtmlHelper htmlHelper)
{
    var img = new TagBuilder("img");
    var urlHelper = new UrlHelper(htmlHelper.ViewContext.RequestContext);
    var number = _random.Next(1, 4);
    var src = urlHelper.Content(string.Format("~/img{0}.gif", number));
    img.Attributes["src"] = src;
    img.Attributes["border"] = "0";
    return MvcHtmlString.Create(img.ToString());
}

Что вы можете использовать на своей странице:

<%= Html.RandomImage() %>

И если вы хотите также создать якорь:

public static class HtmlExtensions
{
    private class Image
    {
        public string Src { get; set; }
        public string Href { get; set; }
    }

    private static Random _random = new Random();
    private static Image[] _images = new[]
    {
        new Image { Src = "img1.gif", Href = "http://www.example1.com" },
        new Image { Src = "img2.gif", Href = "http://www.example2.com" },
        new Image { Src = "img3.gif", Href = "http://www.example3.com" }
    };

    public static MvcHtmlString RandomImage(this HtmlHelper htmlHelper)
    {
        var anchorTag = new TagBuilder("a");
        var randomImage = _images[_random.Next(0, _images.Length)];
        anchorTag.Attributes["href"] = randomImage.Href;

        var imageTag = new TagBuilder("img");
        imageTag.Attributes["src"] = randomImage.Src;
        imageTag.Attributes["border"] = "0";
        anchorTag.InnerHtml = imageTag.ToString();
        return MvcHtmlString.Create(anchorTag.ToString());
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...