Tag: umbraco

使用Razor LINQ .Where()查找具有特定日期值的umbraco节点

我正在重写一个XSLT宏来显示当前页面的子节点,具体取决于为’month’和’year’设置的查询字符串变量。 这用于显示特定时期的文章的新闻列表页面。 在旧的宏中,我循环并选择“newsDate”属性的月份部分(这是一个datepicker字段)并将它们分配给nodelist变量的节点。 $ Displaymonth是从查询字符串中收集的。 我在使用razor语法创建类似的节点列表时遇到问题。 假设查询字符串是八月,我尝试过类似的事情 Model.Children.Where(umbraco.library.FormatDateTime(newsDate,’M’) + ” == 8″); Model.Children.Where(“Convert.ToDateTime(newsDate).Month == \”8\””); Model.Children.Where(“newsDate.Month == \”8\””); Model.Children.Where(“newsDate.Value.Month == \”8\””); Model.Children.Where(i=>Convert.ToDateTime(i.GetProperty(“newsDate”).Value).Month==8)) 调试错误主要是抱怨我的newsDate变量中没有属性“month”。 或者“类型’Func`2’中没有属性或字段日期”。 它似乎将我的Datepicker属性视为字符串,无论我做什么,如此处所述,但我使用的是最新版本的umbraco。 如何通过转换datepicker属性(Umbraco中的DateTime对象)的月份/年份并将其与变量进行比较来查找子项? 如何在.Where语句中获取此日期属性并提取月/年?

Umbraco – 在C#中查找根节点

我正在研究后端模块,因此Node.GetCurrent()不是一个选项。 我需要找到一种方法来调用Node currentNode = new Node(parentNodeId); 并获取该站点的根节点。 我在XSLT中看过样本,但C#没有。 有谁知道我怎么能做到这一点? 即使只是获取根节点的ID以便我可以调用new Node()也会很棒。

如何获取用户控件数据类型所在的TabPage

我正在使用用户控件包装器方法构建自定义数据类型。 在其中我添加了现有的TinyMCE数据类型。 问题是我需要找到一种方法来动态获取数据类型所在的当前TabPage,以便我可以将TinyMCE按钮添加到菜单中。 这就是我目前所用的(TabPage是硬编码的): 使用陈述: using umbraco.cms.businesslogic.datatype; using umbraco.editorControls.tinyMCE3; using umbraco.uicontrols; OnInit方法: private TinyMCE _tinymce = null; protected override void OnInit(EventArgs e) { base.OnInit(e); this.ID = “crte”; DataTypeDefinition d = DataTypeDefinition.GetDataTypeDefinition(-87); _tinymce = d.DataType.DataEditor as TinyMCE; ConditionalRTEControls.Controls.Add(_tinymce); TabView tabView = Page.FindControl(“TabView1”, true) as TabView; TabPage tabPage = tabView.Controls[0] as TabPage; tabPage.Menu.InsertSplitter(); tabPage.Menu.NewElement(“div”, “umbTinymceMenu_” + _tinymce.ClientID, […]

Umbraco MVC与温莎城堡

有没有人有任何示例代码让Umbraco MVC使用Castle Windsordependency injection框架? 我遇到的问题是让我的表面控制器使用可注射的参数化构造函数。 我知道我做错了什么但不确定是什么。 我在这里遵循了(非Umbraco)教程 – http://docs.castleproject.org/Windsor.Windsor-tutorial-part-four-putting-it-all-together.ashx – 这基本上意味着在App_Start上我是运行此代码: var container = new WindsorContainer().Install(FromAssembly.This()); var controllerFactory = new MyCustomControllerFactory(container.Kernel); ControllerBuilder.Current.SetControllerFactory(controllerFactory); MyCustomControllerFactory代码如下。 此外,我的IWindsorInstaller实现包含以下内容: container.Register(Classes.FromThisAssembly() .BasedOn() .LifestyleTransient()); 我得到的例外是’找不到支持服务的组件Umbraco.Web.Mvc.RenderMvcController’,当我用一个参数化构造函数调用一个表面控制器时,由下面的GetControllerInstance方法抛出: public class TestSurfaceController : SurfaceController { public TestSurfaceController(INameService nameService) { …. } } 如果有人有一些有效的示例代码,我真的很感激。 我之前已经把Ninject和Umbraco连接起来没有遇到任何麻烦,但是在这个项目中,我被绑在温莎城堡上并且无处可去! 提前致谢。 MyCustomControllerFactory.cs: public class MyCustomControllerFactory : DefaultControllerFactory { private readonly IKernel kernel; […]

Umbraco – 按URL选择节点

当我试图通过它的url访问节点时,我遇到了Umbraco的问题。 我一直在尝试形成一个xpath查询来选择url,但我不知道如何做到这一点,并且他们的API中的所有内容都是“动态的”所以我发现无法深入挖掘其他内容方法。 Umbraco编辑器中的“链接到文档”属性显示路径为“ / links / link-regions / link-region-1 / ”。 它在编辑器中的位置是“ / Data / Links / Link Regions / Link Region 1 ”。 我怀疑它看起来像这样,但我不能让它工作: //*[@url=’/links/link-regions/link-region-1/’] 我基本上想知道我要做什么来通过提供这些值中的任何一个而不是其他值来获取节点。 我一直试图这样做几天无济于事,请帮忙!

Umbraco按语言获取字典项目,怎么样?

在Umbraco v6中,可以使用以下命令获取dictionaryitem: umbraco.library.GetDictionaryItem(“EmailSubject”); 这将根据用户访问umbraco网站的文化检索“EmailSubject”的正确值。 现在我正在编写一个简单的电子邮件类库,我不关心System.Threading.Thread.CurrentThread.CurrentCulture,我不想在获取值之前始终设置CurrentCulture。 它有效,但我不喜欢这种方法。 我正在写一个简单的邮件库。 对于每个邮件收件人,我认为设置这样的文化并不是很有效。 我找到的解决方案(在线搜索,我遗失了来源抱歉)是以下示例: //2 = the 2nd language installed under Settings > Languages, which is German in my case var sometext = new umbraco.cms.businesslogic.Dictionary.DictionaryItem(“SomeText”).Value(2); 我创建了一些帮助方法,使其更容易: private string GetDictionaryText(string dictionaryItem, string language) { //try to retrieve from the cache string dictionaryText = (string)HttpContext.Current.Cache.Get(dictionaryItem + language); if (dictionaryText == null) { […]

尝试强制转换匿名对象时出错,Razor

我正在尝试强制转换一组匿名对象,其中每个对象如下所示: new {type=”internal”,title=”Linktitle”,target=”_blank”,link=”http://www.google.se”} 我已经声明了一个类“链接”,应该对其进行匿名对象的转换 class Link{ public string type {get;set;} public string target {get;set;} public string title {get;set;} public string link {get;set;} } 现在我试图像这样投射物体 List links = Model.relatedLinks.Select(l => new Link{type=l.type,target=l.target,title=l.title,link=l.link}).ToList(); 然后我得到了错误 Cannot use a lambda expression as an argument to a dynamically dispatched operation without first casting it to a delegate or expression tree […]

无法加载文件或程序集System.Web.Mvc

我正在我的项目中使用umbraco 4.11.3。我的项目工作得很好,在Windows 7上运行并从visual studio 2012运行它。但是当它从Visual Studio 2012运行时它在Win 8中不起作用! 错误是: 无法加载文件或程序集’System.Web.Mvc,Version = 2.0.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35’或其依赖项之一。 定位的程序集的清单定义与程序集引用不匹配。 (HRESULTexception:0x80131040) 描述:执行当前Web请求期间发生未处理的exception。 请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。 exception详细信息:System.IO.FileLoadException:无法加载文件或程序集’System.Web.Mvc,Version = 2.0.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35’或其依赖项之一。 定位的程序集的清单定义与程序集引用不匹配。 (HRESULTexception:0x80131040) 来源错误: 在执行当前Web请求期间生成了未处理的exception。 可以使用下面的exception堆栈跟踪来识别有关exception的起源和位置的信息。 程序集加载跟踪:以下信息有助于确定无法加载程序集“System.Web.Mvc,Version = 2.0.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35”的原因。 ===预绑定状态信息===日志:用户= Jahan-PC \ jahan日志:DisplayName = System.Web.Mvc,Version = 2.0.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35(完全指定)日志: Appbase = file:/// G:/20130204/SourceCode/Defraz.Movafaqiyat.WebApp/Defraz.Movafaqiyat.WebApp/日志:初始PrivatePath […]

无法加载文件或程序集“System.Web.Razor”或其依赖项之一

我在我的网站(网络应用程序)中使用了Umbraco 4.11.6。我的网站在localhost中工作(从Visual Studio 2012和IIS(v7)测试)但是当我从互联网空间运行它时出现错误。 错误是: 无法加载文件或程序集“System.Web.Razor”或其依赖项之一。 定位的程序集的清单定义与程序集引用不匹配。 (HRESULTexception:0x80131040) 程序集加载跟踪:以下信息有助于确定无法加载程序集“System.Web.Razor”的原因。 警告:assembly绑定日志记录已关闭。 要启用程序集绑定失败日志记录,请将注册表值[HKLM \ Software \ Microsoft \ Fusion!EnableLog](DWORD)设置为1.注意:程序集绑定失败日志记录会导致一些性能损失。 要关闭此function,请删除注册表值[HKLM \ Software \ Microsoft \ Fusion!EnableLog]。 堆栈跟踪: [FileLoadException:无法加载文件或程序集’System.Web.Razor’或其依赖项之一。 定位的程序集的清单定义与程序集引用不匹配。 (HRESULTexception:0x80131040)] [FileLoadException:无法加载文件或程序集’System.Web.Razor,Version = 2.0.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35’或其依赖项之一。 定位的程序集的清单定义与程序集引用不匹配。 (来自HRESULT的exception:0x80131040)] System.Reflection.RuntimeAssembly._nLoad(AssemblyName fileName,String codeBase,Evidence assemblySecurity,RuntimeAssembly locationHint,StackCrawlMark&stackMark,IntPtr pPrivHostBinder,Boolean throwOnFileNotFound,Boolean forIntrospection,Boolean suppressSecurityChecks)+0 System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(AssemblyName assemblyRef,Evidence assemblySecurity,RuntimeAssembly reqAssembly,StackCrawlMark&stackMark,IntPtr pPrivHostBinder,Boolean throwOnFileNotFound,Boolean forIntrospection,Boolean suppressSecurityChecks)+210 System.Reflection.RuntimeAssembly.InternalLoad(String […]

Umbraco:在用户控件中列出子节点

我有一个用户控件,我需要根据parentID返回子节点。 我能够获取parentID,但不知道返回子节点的语法。