При использовании .Value я не уверен, почему я получаю «метод, который недопустим в данном контексте» - PullRequest
0 голосов
/ 11 апреля 2020

При преобразовании строки в число я не могу использовать .Value.

Я использую это для создания адаптивных изображений с помощью Umbraco.

public static IHtmlString GetSrcSet(this IPublishedContent item, int width = 0, int height = 0, string widths = "300,600,768")
{
       StringBuilder sb = new StringBuilder(string.Empty);

       if (width == 0)
       {
           width = int.Parse(item.GetProperty("UmbracoWidth").ToString());
       }

       if (height == 0)
       {
           height = int.Parse(item.GetProperty("UmbracoHeight").ToString());
       }

       string[] splitWidths = widths.Split(',');

       foreach (string newWidth in splitWidths)
       {
           . . . 
       }

       return (new HtmlString(sb.ToString()));
}

Я уверен, что мне нужно использовать. Значение в этих строках

 if (width == 0)
 {
   width = int.Parse(item.GetProperty("UmbracoWidth").Value.ToString());
 }

 if (height == 0)
 {
   height = int.Parse(item.GetProperty("UmbracoHeight").Value.ToString());
 }

Но тогда я получаю

Ошибка CS0119 'ОпубликованоElementExtensions.Value (IPublishedElement, string, string, string, Fallback, object) '- это метод, который недопустим в данном контексте

Пропуск .Value:

Ввод строка была в неправильном формате.

1 Ответ

2 голосов
/ 11 апреля 2020

Вам необходимо добавить скобки после значения. В данный момент вы вызываете Value как свойство, когда вам нужно вызвать его как метод.

 if (width == 0)
 {
   width = int.Parse(item.GetProperty("UmbracoWidth").Value().ToString());
 }

 if (height == 0)
 {
   height = int.Parse(item.GetProperty("UmbracoHeight").Value().ToString());
 }
...