2014-05-08 259 views
0

我在上线63编译错误:编译错误

<div class="dateAdded">Article submitted @article.DateAdded.ToRelativeDateStringUtc()</div> 

编译器错误信息:CS1061:“System.DateTime的”不包含“一 定义ToRelativeDateStringUtc”和没有扩展方法 ‘ToRelativeDateStringUtc’接受 类型的第一参数‘的System.DateTime’可以找到(是否缺少using指令或 程序集引用?)

这是我的错误发生的地方。我有一个包含我的程序中包含的ToRelativeDateStringUtc()的类。这是一个MS类,我必须导入?我没有看到它在.net参考列表中的任何地方列出。我确定它很简单,有没有人有任何想法?

回答

0

您应该将所需的名称空间添加到您的web.config中。根据您是否使用剃须刀,有不同的部分。

对于剃刀

<system.web.webPages.razor> 
    <pages pageBaseType="System.Web.Mvc.WebViewPage"> 
    <namespaces> 
     <add namespace="System.Web.Mvc" /> 
     <add namespace="System.Web.Mvc.Ajax" /> 
     . 
     . 
     <!-- etc --> 
    </namespaces> 
    </pages> 
</system.web.webPages.razor> 

对于旧版本的ASP.NET

<pages> 
    <namespaces> 
    <add namespace="System.Web.Mvc"/> 
    <add namespace="System.Web.Mvc.Ajax"/> 
    <add namespace="System.Web.Mvc.Html"/> 
    <add namespace="System.Web.Routing"/> 
    <add namespace="System.Web.WebPages"/> 
    <add namespace="System.Web.Helpers"/> 
    <add namespace="MyCustomHelpers"/> 
    </namespaces> 
</pages> 

最后,您可以添加和@using添加.cshtml的顶部。

+0

我觉得你就在这里。我添加了命名空间我的配置。指着我的帮手类。现在我看看这一行:第68行:编译器错误消息:CS1001:标识符预期 – Killdashnine

+0

现在好了,那个错误神奇地消失了。我以前的错误仍然是 – Killdashnine

+0

@Deadhat:你应该添加类似于<'。您添加了对文件的引用,而不是名称空间。 – Pieter

0

您没有将参数传递给ToRelativeDateStringUtc方法。

this.should样子:

public static string ToRelativeDateStringUtc(this DateTime date) 
{ 
    return GetRelativeDateValue(date, DateTime.UtcNow); 
} 
private static string GetRelativeDateValue(DateTime date, DateTime comparedTo) 
{ 
    TimeSpan diff = comparedTo.Subtract(date); 
    if (diff.TotalDays >= 365) 
     return string.Concat("on ", date.ToString("MMMM d, yyyy")); 
    if (diff.TotalDays >= 7) 
     return string.Concat("on ", date.ToString("MMMM d")); 
    else if (diff.TotalDays > 1) 
     return string.Format("{0:N0} days ago", diff.TotalDays); 
    else if (diff.TotalDays == 1) 
     return "yesterday"; 
    else if (diff.TotalHours >= 2) 
     return string.Format("{0:N0} hours ago", diff.TotalHours); 
    else if (diff.TotalMinutes >= 60) 
     return "more than an hour ago"; 
    else if (diff.TotalMinutes >= 5) 
     return string.Format("{0:N0} minutes ago", diff.TotalMinutes); 
    if (diff.TotalMinutes >= 1) 
     return "a few minutes ago"; 
    else 
     return "less than a minute ago"; 
} 

更多细节

http://dotnetslackers.com/articles/aspnet/5-Helpful-DateTime-Extension-Methods.aspx

http://forums.asp.net/t/1880820.aspx?How+to+create+a+flipcart+like+panel+for+showing+products+in+gridview

+0

-1这不是扩展方法通常的工作方式。这段代码应该被称为'myDateTimeInstance.ToRelativeDateStringUtc()',编译器将解析参数。 – sisve

+0

@SimonSvensson我觉得你很聪明,你能解决我的问题吗? http://stackoverflow.com/questions/23386532/web-security-in-ie-vs-chrome-firefox-bug –