asp net mvc по умолчанию отображение изображения - PullRequest
1 голос
/ 15 февраля 2011

Как я могу отобразить изображение по умолчанию, если у пользователя нет изображения? На данный момент я отображаю так:

<img alt="<%: Model.FullName %>" src="/Uploads/foto_<%: Model.StudentID %>.jpg" 
style="height: 125px; width: 125px" />

И в некоторых случаях, если у меня нет этой фотографии в папке Uploads, я не получаю изображение, поэтому мне нужно изображение по умолчанию.

Ответы [ 2 ]

1 голос
/ 26 июня 2011

Используйте приведенный ниже код на своей странице .aspx

      <asp:Image ID="Image1" runat="server" Height="125px" Width="125px" onerror="this.onload = null; this.src='profimgs/default_l.jpg';"/>      

на своей странице .cs используйте следующий код

Image1.ImageUrl = "D:\profimgs\orginalimg.jpg";
0 голосов
/ 15 февраля 2011

Я бы написал помощник HTML:

public static class HtmlExtensions
{
    public static MvcHtmlString StudentImage(this HtmlHelper<StudentViewModel> htmlHelper)
    {
        var model = htmlHelper.ViewData.Model;
        var relativeImagePath = "~/uploads/foto_" + model.StudentID + ".jpg";
        var imagePath = htmlHelper.ViewContext.HttpContext.Server.MapPath(relativeImagePath);
        var image = new TagBuilder("img");
        var urlHelper = new UrlHelper(htmlHelper.ViewContext.RequestContext);
        image.Attributes["src"] = urlHelper.Content("~/uploads/some_generic_image.jpg");
        image.Attributes["alt"] = model.FullName;
        image.Attributes["style"] = "height: 125px; width: 125px";
        if (File.Exists(imagePath))
        {
            image.Attributes["src"] = urlHelper.Content(relativeImagePath);
        }
        return MvcHtmlString.Create(image.ToString());
    }
}

и тогда, на ваш взгляд, просто:

<%= Html.StudentImage() %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...