src/SSCMS.Web/Controllers/Admin/Cms/Templates/TemplatesReferenceController.ElementName.cs
(开头部分) 2KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
using System;
using System.Collections.Generic;
using System.Reflection;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using SSCMS.Core.StlParser.Attributes;
using SSCMS.Core.StlParser.Models;
using SSCMS.Utils;
namespace SSCMS.Web.Controllers.Admin.Cms.Templates
{
public partial class TemplatesReferenceController
{
[AllowAnonymous]
[HttpGet, Route(Route + "/{elementName}")]
public ActionResult<ListResult> ElementName([FromRoute] string elementName)
{
var elements = StlAll.Elements;
if (!elements.TryGetValue(elementName, out var elementType))
{
return NotFound();
}
var name = elementName.Substring(4);
var stlAttribute = (StlElementAttribute)Attribute.GetCustomAttribute(elementType, typeof(StlElementAttribute));
var references = new List<ListReference>
{
new ListReference
{
Name = $"{elementName} {stlAttribute.Title}",
Url = $"https://sscms.com/docs/v7/stl/{name}/"
}
};
var attributes = new List<ListAttribute>();
var fields = new List<FieldInfo>();
if (typeof(StlListBase).IsAssignableFrom(elementType))
{
fields.AddRange(typeof(StlListBase).GetFields(BindingFlags.Static | BindingFlags.NonPublic | BindingFlags.Public));
}
fields.AddRange(elementType.GetFields(BindingFlags.Static | BindingFlags.NonPublic | BindingFlags.Public));
foreach (var field in fields)
{
var fieldName = StringUtils.ToCamelCase(field.Name);
var attr = (StlAttributeAttribute)Attribute.GetCustomAttribute(field, typeof(StlAttributeAttribute));
if (attr != null)
{
attributes.Add(new ListAttribute
{
Name = fieldName,
Description = attr.Title
});
}
}
return new ListResult
{
Version = 1.1,
后面还有 14 行代码,解锁后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明
AI 解读
登录后可用,每次 10 积分,解读结果公开显示在下面。
还没有人解读过这个文件。
