网站首页 网站源码
website
站点相关全部源代码,隐藏了一些关于服务器的信息
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Text.Json.Serialization;
using System.Xml.Serialization;
using Microsoft.AspNetCore.Mvc.ModelBinding;

#nullable enable

namespace Dpz.Core.Public.ViewModel.DynamicPages;

/// <summary>
/// 自定义页
/// </summary>
public class VmCreateDynamicPage
{
    /// <summary>
    /// HTML 内容
    /// </summary>
    [Required]
    public HtmlContent? HtmlContent { get; set; }

    /// <summary>
    /// 样式 内容
    /// </summary>
    [XmlIgnore]
    public SortedDictionary<int, StyleContent> StyleContents { get; set; } = [];

    [XmlArray(ElementName = "StyleContents")]
    [XmlArrayItem(ElementName = "StyleContent")]
    [JsonIgnore]
    public KeyValueElement[] SerializableStyleContents =>
        StyleContents?.Select(x => new KeyValueElement(x.Key, x.Value)).ToArray() ?? [];

    /// <summary>
    /// 脚本 内容
    /// </summary>
    [XmlIgnore]
    public SortedDictionary<int, ScriptContent> ScriptContents { get; set; } = [];

    [XmlArray(ElementName = "ScriptContents")]
    [XmlArrayItem(ElementName = "ScriptContent")]
    [JsonIgnore]
    public KeyValueElement[] SerializableScriptContents =>
        ScriptContents?.Select(x => new KeyValueElement(x.Key, x.Value)).ToArray() ?? [];

    /// <summary>
    /// 创建人
    /// </summary>
    [BindNever]
    public VmUserInfo? Creator { get; set; }
}
⚠⚠    以下内容为AI分析的结果,请根据实际情况进行判断。

这段代码定义了一个名为 VmCreateDynamicPage 的 C# 类,主要用于表示一个动态页面的视图模型。这个类包含了多个属性,用于存储与动态页面相关的信息。以下是对代码中各个部分的详细解释:

类和命名空间

  • namespace Dpz.Core.Public.ViewModel.DynamicPages:定义了一个命名空间,表示该类属于 Dpz.Core.Public.ViewModel.DynamicPages 这个逻辑分组。
  • public class VmCreateDynamicPage:定义了一个公共类 VmCreateDynamicPage,用于创建动态页面的视图模型。

属性

  1. HtmlContent

    • 类型:HtmlContent?
    • 特性:[Required]
    • 描述:表示页面的 HTML 内容。使用 Required 特性,表示该属性是必需的,不能为 null。
  2. StyleContents

    • 类型:SortedDictionary<int, StyleContent>
    • 描述:存储样式内容的有序字典,键为整数,值为 StyleContent 对象。初始化为空字典。
  3. SerializableStyleContents

    • 类型:KeyValueElement[]
    • 特性:[XmlArray], [XmlArrayItem], [JsonIgnore]
    • 描述:将 StyleContents 转换为 KeyValueElement 数组,以便于序列化。使用 JsonIgnore 特性,表示在 JSON 序列化时忽略该属性。
  4. ScriptContents

    • 类型:SortedDictionary<int, ScriptContent>
    • 描述:存储脚本内容的有序字典,键为整数,值为 ScriptContent 对象。初始化为空字典。
  5. SerializableScriptContents

    • 类型:KeyValueElement[]
    • 特性:[XmlArray], [XmlArrayItem], [JsonIgnore]
    • 描述:将 ScriptContents 转换为 KeyValueElement 数组,以便于序列化。使用 JsonIgnore 特性,表示在 JSON 序列化时忽略该属性。
  6. Creator

    • 类型:VmUserInfo?
    • 特性:[BindNever]
    • 描述:表示创建该动态页面的用户信息。使用 BindNever 特性,表示在模型绑定时忽略该属性。

总结

VmCreateDynamicPage 类的主要功能是封装动态页面的相关数据,包括 HTML 内容、样式内容、脚本内容以及创建者的信息。它使用了数据注解特性来控制属性的验证和序列化行为。该类可以用于 MVC 或 Web API 应用程序中,以便于处理动态页面的创建请求。

loading