2013-12-13 3 views
2

У меня есть следующий класс модели в моем asp.net VMC веб-приложениях: -Невозможно ссылаться Url.content в моей модели представления модели класса

public static class HtmlHelperExtensions 
    { 
     public static string ImageOrDefault(this HtmlHelper helper, string filename) 
     { 
      var imagePath = uploadsDirectory + filename + ".png"; 
      var imageSrc = File.Exists(HttpContext.Current.Server.MapPath(imagePath)) 
           ? imagePath : defaultImage; 

      return imageSrc; 
     } 

     private static string defaultImage = "/Content/uploads/virtual-data-center.png"; 
     private static string uploadsDirectory = Url.Contnet("/Content/uploads/"); 
    } 
} 

, но я не смог сослаться на Url.content в моей последней строке кода, хотя я включил using System.Security.Policy;

ответ

2

Вам нужно написать класс метод расширения UrlHelper затем:

public static class HtmlHelperExtensions 
{ 
    private static string defaultImage = "/Content/uploads/virtual-data-center.png"; 

    public static string ImageOrDefault(this UrlHelper urlHelper, string fileName) 
    { 
     var imagePath = urlHelper.Content("/Content/uploads/") + fileName + ".png"; 

     HttpContextBase httpContext = urlHelper.RequestContext.HttpContext; 
     var imageSrc = File.Exists(httpContext.Server.MapPath(imagePath)) 
          ? imagePath : defaultImage; 

     return imageSrc; 
    } 
} 

Также не используйте HttpContext.Current, если вам это не нужно. Вы можете использовать его в своем виде:

@Url.ImageOrDefault("somefile") 
+0

хорошо работает, спасибо большое. –

Смежные вопросы