标签: episerver

EpiServer:如何检查页面是否存在?

有没有办法优雅地检查EpiServer CMS 5中是否存在页面(给定一个pageId整数)不必抓住被PageNotFoundException抛出的页面

DataFactory.Instance.GetPage(pageReference)

(EpiServer将很乐意使用非现有的pageId创建一个PageReference).

当然,我可以检查页面是否存在而不抛出异常或进行大规模循环?

episerver

3
推荐指数
1
解决办法
2500
查看次数

创建新的EPiServer项目有哪些步骤

你如何建立一个新的EPiServer网站?我似乎无法从一个空的视觉工作室项目到一个已部署的网站,而无需修复各种文件路径和引用问题.

如果您有一个顺利的过程从头开始创建一个EPiServer站点并将其部署到Web服务器......我很乐意听到它!

episerver

3
推荐指数
1
解决办法
1569
查看次数

限制ContentArea中的块

我有一个问题限制在ContentArea中插入什么类型的块.我想要的是SliderBlock的ContentArea属性只能插入一个SlideItemBlock.

[ContentType(...)]
public class SlideItemBlock : BlockData
{
    [Required]
    Display(Name = "Image")]
    public virtual string Image { get; set;}
}

[ContentType(...)]
public class SliderBlock : BlockData
{
    [Required]
    [Display(Name = "Slides")]
    public virtual ContentArea Slides { get; set; }
    //Should only accept insertion of SlideItemBlock
}
Run Code Online (Sandbox Code Playgroud)

或者这是否是错误的方法来实现我试图限制编辑器不拖放错误的块类型?

截至目前,我可以创建一个SliderBlock并在其中插入一个SlideItemBlocks.如果我然后在新的SliderBlock中插入创建的SliderBlock,我会得到一个永远的循环,它会打破网站.这就是我想要控制的.

episerver episerver-7

3
推荐指数
1
解决办法
3966
查看次数

EpiServer:将String转换为XHTMLString

我目前正在使用带有ASP.Net MVC的EpiServer 7.5.

基本上,我在模型中定义一个属性,该属性需要是XHtmlString类型.我希望在模型中做什么设置XHtmlString的默认值,但由于这是由字符串表示,我该怎么做?

这是代码中的一个例子 - 这是我的模型:

[Required]
[Display(
    Name = "Thank you message",
    Order = 1)]
public virtual XhtmlString ThankYouMessage{ get; set; }
Run Code Online (Sandbox Code Playgroud)

现在,稍后在代码中,我只想将此ThankYouMessage类型的默认值设置为字符串.

ThankYouMessage = "Default thank you message";
Run Code Online (Sandbox Code Playgroud)

这不起作用,因为ThankYouMessage是XHtmlString的对象类型,我显然无法将其设置为一种字符串.

我认为这与XHtmlStringConverter有关但我无法弄清楚 - 任何帮助都会受到赞赏.

干杯!

c# model-view-controller asp.net-mvc episerver

3
推荐指数
1
解决办法
3166
查看次数

使用ajax在Controller中调用Action - 无法正常工作.(ASP.Net MVC)

我一直在冥思这个错误一段时间,并尝试了网上发现的所有建议,但仍然没有运气.

我正在对控制器的动作进行简单的ajax调用.该应用程序位于EPiServer中,但这似乎是关于在ASP.NET中使用Ajax的一般性问题.

索引视图:

<input id="btnAjax" type="button" value="Favorite" />

<script>
    $('#btnAjax').click(function () {
        $.ajax({
            url: '@Url.Action("SetCookie", "Home")',
            contentType: 'application/html; charset=utf-8',
            type: 'POST',
            dataType: 'html'    
        })
        .success(function (result) {
            alert("Success");
        })
        .error(function (xhr, status) {
            alert(status);
        })
    });
</script>
Run Code Online (Sandbox Code Playgroud)

控制器 - HomeController:

    [HttpPost]
    public void SetCookie()
    { 
        //Do stuff        
    }
Run Code Online (Sandbox Code Playgroud)

我做了什么/尝试过:

  1. 正确引用jquery.

  2. 为操作添加了[WebMethod]属性

  3. 在Web.config中添加了一个Http模块(ScriptModule,用于EPiServer)

  4. 在引用jquery之后添加了对jquery.unobtrusive-ajax.js的引用.

当我运行webapplication并按下按钮时,Developer工具中的调试器告诉我

在此输入图像描述

这很奇怪,因为在HomeController中有一个名为SetCookie()的动作/方法.并显示警告框"失败",表示至少调用了js函数.

无论是我是盲人还是缺少某些东西,或者还有其他需要做的事情......

欢迎所有建议,非常感谢.

/ ChrisRun

ajax asp.net-mvc asp.net-ajax episerver

3
推荐指数
1
解决办法
1607
查看次数

使用Recaptcha与EPiServer XForms

有没有人在EPiServer中使用Recaptcha和XForms?

我不知道在哪里放置Recaptcha控件以及如何使其工作.ASP.NET的示例代码是以下代码.我应该把它放在哪里.我猜是在FormControl_BeforeSubmitPostedData

 <%@ Page Language="VB" %>
 <%@ Register TagPrefix="recaptcha" Namespace="Recaptcha" Assembly="Recaptcha" %>  
 <script runat=server%gt;       
 Sub btnSubmit_Click(ByVal sender As Object, ByVal e As EventArgs)           
    If Page.IsValid Then               
        lblResult.Text = "You Got It!"               
        lblResult.ForeColor = Drawing.Color.Green           
    Else               
        lblResult.Text = "Incorrect"               
        lblResult.ForeColor = Drawing.Color.Red           
    End If       
 End Sub   
 </script>   
 <html>   
 <body>       
 <form runat="server">           
     <asp:Label Visible=false ID="lblResult" runat="server" />
     <recaptcha:RecaptchaControl ID="recaptcha" runat="server" Theme="red"
                                 PublicKey="your_public_key" PrivateKey="your_private_key" />
     <asp:Button ID="btnSubmit" runat="server" Text="Submit" OnClick="btnSubmit_Click" />
 </form>   
 </body>   
 </html>
Run Code Online (Sandbox Code Playgroud)

xforms episerver recaptcha

2
推荐指数
1
解决办法
1894
查看次数

如何获取当前页面的"页面类型".EPiServer

如何获取当前页面的页面类型.我试过了

CurrentPage.GetType();
Run Code Online (Sandbox Code Playgroud)

但没有成功.我需要检查页面类型是否等于特定类型才能执行某些操作.

谢谢

types episerver current-page

2
推荐指数
2
解决办法
6682
查看次数

如何在 EPIServer 中将页面设置为起始页

我在 EPIServer 中创建了一个包含 4 个页面的 CMS 站点。现在我想将 id '5' 的页面设置为起始页面。在 episerver.config 部分中,我没有找到 sitesettings 部分。我正在开发.NET提供的MVC应用程序模板。但没有获得任何设置 pagestarid 的选项。在 episever.config 文件中设置 taht 的位置。

我的配置文件是这样的:

<episerver xmlns="http://EPiServer.Configuration.EPiServerSection">
  <workflowSettings>
    <workflowHost type="EPiServer.WorkflowFoundation.AspNetWorkflowManager,EPiServer.WorkflowFoundation" />
    <definitions>
      <!-- definition:           Workflow definitions that should be predefined, that is if no definition with
                                 specified type exists it will be created-->
      <!-- 
              <definition name="Sequential Approval"    description="A sequential approval workflow for pages"          type="EPiServer.WorkflowFoundation.Workflows.SequentialApproval,EPiServer.WorkflowFoundation"/>
              <definition name="Parallel Approval"      description="A paralell approval workflow for pages"            type="EPiServer.WorkflowFoundation.Workflows.ParallelApproval,EPiServer.WorkflowFoundation"/>
              <definition name="Request for feedback"   description="Assigns request for feedback tasks to …
Run Code Online (Sandbox Code Playgroud)

episerver episerver-7

2
推荐指数
1
解决办法
3011
查看次数

将IEnumerable <PageData>转换为Episerver PageDataCollection

我如何才能将Linq查询返回到Episerver PageDataCollection?我无法在网上找到任何相关信息.

//This becomes IEnumerable<DataPapge> i need it to be PageDataCollection
var  banners = DataFactory.Instance
                          .GetChildren(CurrentPageLink)
                          .Where(child => child.PageTypeName == "SomeName") ;

//BannerCollection becomse null 
PageDataCollection bannerCollection = banners as PageDataCollection;
Run Code Online (Sandbox Code Playgroud)

linq ienumerable episerver

2
推荐指数
1
解决办法
1012
查看次数

如何在 EPiServer 10 中以编程方式“翻译”页面

我目前正在从代码创建一个新页面,用作我也从代码创建的站点定义的起始页......但是......即使我发布了新创建的起始页,我总是在 CMS UI 中得到以下消息:

“此内容是英文的。在 svenska 中不存在。您现在要翻译吗?”

如何以编程方式“翻译”页面,然后也发布它?我在这里或在谷歌搜索时找不到与此相关的任何内容。

c# asp.net episerver content-management-system

2
推荐指数
1
解决办法
880
查看次数