有没有人幸运使用.NET Web服务访问Sitecore项目?我的服务器上有许多仍在Coldfusion中的Web应用程序.我希望能够调用Web服务来下拉项目,但是当我尝试这样做时,我得到一个异常"Sitecore.Data.Items.Item无法序列化,因为它没有无参数构造函数."
我的网站上有一个页面,为了这个例子,我们可以说http://myhost/Pages/Default.aspx.在Default.aspx上,我有一个名为MyControl.ascx的用户控件,它位于/Controls/MyControl.ascx中.所以树看起来像这样
每当我在MyControl.ascx上放置HyperLink控件并指定NavigateUrl时,此路径都相对于控件而不是页面的URL.因此,例如,如果在NavigateUrl中我指定了"AboutMe.aspx",则URL将呈现为http://myhost/Controls/AboutMe.aspx而不是http://myhost/Pages/AboutMe.aspx.我有什么方法可以使这个相对于页面URL?我在这里尝试了解决方案:来自ASP.NET用户控件NavigateUrl的相对路径,但它对我不起作用.
编辑
为了澄清,我希望这是足够通用的,以便如果我不知道路径是什么,解决方案将起作用.所以我真的不想在NavigateUrl中编码"〜/ Pages/Default.aspx"
有没有办法使用DateTime.ToString()方法将时间部分的meridiem显示为"AM"而不是"AM"?我尝试使用掩码"tt",但这只输出"AA"
关于如何做到这一点似乎有太多的资源,但我真的找不到任何可以做我想做的事情.我正在尝试创建一个WCF Web服务,要求用户进行身份验证以便能够执行任何操作(调用方法,请参阅WSDL等).身份验证将是我为连接到LDAP服务器而编写的自定义部分.我想使用表单身份验证,因为我不希望客户端必须在每个请求上重新进行身份验证.我希望该服务只是将一个Forms Auth票证cookie发送到客户端,客户端可以将其发回以备将来的请求(我可以将其用于不支持cookie的客户端环境,例如移动应用程序).但是,在服务端,我需要能够在内存中存储每个用户的数据,以保留用户身份验证组的缓存副本(以避免重复调用LDAP服务器),这可以很容易地使用表单Auth票证.我是WCF和表单身份验证的新手,所以如果你不跳过"简单"的东西,我将不胜感激.谢谢!
有没有办法在客户端标记(例如<link>)中使用〜字符(或类似的东西)链接到应用程序根目录?我有一些外部样式表和脚本,我需要链接到主页面,但我不想硬编码相对于IIS站点的路径,我想根据相对的应用程序路径来做.
我想知道是否有可能在C#中的switch语句中有条件地突破一个案例.以下面的例子为例.
MediaStream photoMediaStream = null;
switch (photoSize)
{
    case PhotoSize.Normal:
        if (imageWidth >= NormalWidth && imageWidth % NormalWidth == 0)
        {
            photoMediaStream = photoMedia.GetStream(new MediaOptions {Width = NormalWidth});
            break;
        }
    case PhotoSize.Small:
        if (imageWidth >= SmallWidth && imageWidth % SmallWidth == 0)
        {
            photoMediaStream = photoMedia.GetStream(new MediaOptions {Width = SmallWidth});
            break;
        }
    case PhotoSize.Thumb:
        if (imageWidth >= ThumbWidth && imageWidth % ThumbWidth == 0)
        {
            photoMediaStream = photoMedia.GetStream(new MediaOptions {Width = ThumbWidth});
            break;
        }
}
基本上,如果条件为真,我想做一些事情,然后突破switch语句,但如果不是,我只想进入下一个案例.
有人可以帮助我解决我在这里要做的事情吗?
jQuery('(div[data-positiontype="3"]) && (div[data-positiontitle*="test"] || div[data-positiondesc*='test'])')
基本上我需要能够在"data-positiontitle"属性或"data-positiondesc"属性中选择具有特定"data-positiontype"属性和标记的所有div.
我有以下代码StreamWriter用于写入MemoryStream.但是,当我尝试回读流时,我得到了截断数据:
using(var outStream = new MemoryStream())
using (var outWriter = new StreamWriter(outStream))
{
    // my operation that's writing data to the stream
    var outReader = new StreamReader(outStream);
    outStream.Flush();
    outStream.Position = 0;
    return outReader.ReadToEnd();
}
这将返回大部分数据,但会在结尾处截断.但是,我知道数据正在进入流,因为如果我尝试写入文件而不是MemoryStream我获取整个内容.例如,此代码将整个内容写入文件:
using (var outWriter = new StreamWriter(@"C:\temp\test.out"))
{
    // my operation that's writing data to the stream
}
有谁知道如何以递归方式获取Sitecore Web控件中项目的子项?我宁愿不使用Sitecore查询,因为我的一些路径中有破折号,这真的搞砸了.Sitecore.Context.Item.getChildren()和Sitecore.Context.Item.Children属性都只返回顶级子级.
我在一个项目上有一个多列表字段,其中可以包含来自不同模板的项目。我想知道是否有任何方式可以映射此字段,从而使对象根据其模板映射到正确的模型。因此,例如:
public interface IPerson
{
    string FullName {get; set;}
}
[SitecoreType(TemplateId="....")]
public class Professor
{
    [SitecoreField]
    public string Prefix {get; set;}
    [SitecoreField]
    public string FirstName {get; set;}
    [SitecoreField]
    public string LastName {get; set;}
    public string FullName
    {
        return string.format("{0} {1} {2}", Prefix, FirstName, LastName)
    }
}
[SitecoreType(TemplateId="....")]
public class Student
{
    [SitecoreField]
    public string FirstName {get; set;}
    [SitecoreField]
    public string LastName {get; set;}
    public string FullName
    {
        return string.format("{0} {1}", FirstName, LastName)
    }
}
[SitecoreType(TemplateId="....")]
public class ClassSession
{
    [SitecoreField] ….net ×3
asp.net ×3
sitecore ×3
c# ×2
datetime ×1
glass-mapper ×1
io ×1
jquery ×1
memorystream ×1
stream ×1
wcf ×1
web-services ×1