1

在将字符串转换为数字时,我似乎无法使用 .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()));
}

我确信我需要在这些行上使用 .Value

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

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

但后来我得到

错误 CS0119 'PublishedElementExtensions.Value(IPublishedElement, string, string, string, Fallback, object)' 是一种在给定上下文中无效的方法

省略.Value

输入字符串的格式不正确。

4

1 回答 1

3

您需要在值之后添加括号。当您需要像方法一样调用它时,您当前正在调用 Value ,就像它是一个属性一样。

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

 if (height == 0)
 {
   height = int.Parse(item.GetProperty("UmbracoHeight").Value().ToString());
 }
于 2020-04-11T10:05:21.340 回答