Sitecore Form 的使用

下載安裝

todo...

使用

文檔:https://doc.sitecore.com/xp/en/users/92/sitecore-experience-platform/sitecore-forms.html

選擇 Forms 進入,創建自己的第一個 form,
image

image

image


注意事項

  1. 使用第三方樣式或者自己的樣式設置的話,得進入 content edit 選中你的 form,然後填寫你的路徑(路徑看2);
    image
  2. sitecore form 的路徑默認是從 <siteroot>/sitecore modules/Web/ExperienceForms/scripts<siteroot>/sitecore modules/Web/ExperienceForms/css 作爲根目錄查找,所以得注意 css 和 js 文件的存放位置;
  3. 你的 layout 得加上這兩句 code,@Html.RenderFormStyles()@Html.RenderFormScripts(),這樣才會渲染出 css 和 js 文件在你的頁面上;

自定義自己的提交功能

官方文檔:https://doc.sitecore.com/xp/en/developers/90/sitecore-experience-manager/walkthrough--creating-a-custom-submit-action.html
引入 Nuget 包:Sitecore.ExperienceForms
繼承 SubmitActionBase 接口;

using System.Linq;
using Sitecore.Diagnostics;
using Sitecore.ExperienceForms.Models;
using Sitecore.ExperienceForms.Processing;
using Sitecore.ExperienceForms.Processing.Actions;
using static System.FormattableString;

namespace Sitecore.ExperienceForms.Samples.SubmitActions
{
    /// <summary>
    /// Executes a submit action for logging the form submit status.
    /// </summary>
    /// <seealso cref="Sitecore.ExperienceForms.Processing.Actions.SubmitActionBase{TParametersData}" />
    public class LogSubmit : SubmitActionBase<string>
    {
        /// <summary>
        /// Initializes a new instance of the <see cref="LogSubmit"/> class.
        /// </summary>
        /// <param name="submitActionData">The submit action data.</param>
        public LogSubmit(ISubmitActionData submitActionData) : base(submitActionData)
        {
        }

        /// <summary>
        /// Tries to convert the specified <paramref name="value" /> to an instance of the specified target type.
        /// </summary>
        /// <param name="value">The value.</param>
        /// <param name="target">The target object.</param>
        /// <returns>
        /// true if <paramref name="value" /> was converted successfully; otherwise, false.
        /// </returns>
        protected override bool TryParse(string value, out string target)
        {
            target = string.Empty;
            return true;
        }

        /// <summary>
        /// Executes the action with the specified <paramref name="data" />.
        /// </summary>
        /// <param name="data">The data.</param>
        /// <param name="formSubmitContext">The form submit context.</param>
        /// <returns>
        ///   <c>true</c> if the action is executed correctly; otherwise <c>false</c>
        /// </returns>
        protected override bool Execute(string data, FormSubmitContext formSubmitContext)
        {
            Assert.ArgumentNotNull(formSubmitContext, nameof(formSubmitContext));

            if (!formSubmitContext.HasErrors)
            {
                Logger.Info(Invariant($"Form {formSubmitContext.FormId} submitted successfully."), this);
            }
            else
            {
                Logger.Warn(Invariant($"Form {formSubmitContext.FormId} submitted with errors: {string.Join(", ", formSubmitContext.Errors.Select(t => t.ErrorMessage))}."), this);
            }

            return true;
        }
    }
}
posted @ 2023-03-16 11:23  灵火  阅读(30)  评论(0编辑  收藏  举报