gpt4 book ai didi

c# - MVC Web API 2 - 在操作上使用自定义属性

转载 作者:行者123 更新时间:2023-11-30 20:29:35 25 4
gpt4 key购买 nike

我正在尝试创建一个自定义的 ActionFilterAttribute,如图所示。该属性将仅包含 Path 的属性。

public class TestLinkAttribute : ActionFilterAttribute
{
public string Path { get; set; }

public override void OnActionExecuting(ActionExecutingContext filterContext)
{

}
}

我希望能够在 web api 集成的帮助页面区域访问此属性,类似于此。

<td class="api-testLink">
@{
var attrColl = api.ActionDescriptor.GetCustomAttributes<TestLinkAttribute>();
if(attrColl.Count > 0)
{
<p>@attrColl[0].Path</p>
}
}
</td>

我是这样装饰 Action 的。

 [TestLink(Path = "api/surveys/72469282/responses")]
public string GetQuestions(int id)
{
}

这对我来说是全新的领域,我做了一些研究,但不能/不知道是否有快速的方法来完成这个。当前输出为空,因为属性集合永远不会 > 0

最佳答案

经过进一步研究,在创建带有继承自ApiController的 Controller 的自定义属性时,必须继承自System.Web.Http.Filters。我从 MVC 命名空间 (System.Web.MVC) 的标准 mvc ActionFilterAttribute 继承。

using System.Web.Http.Filters;

namespace App.Extensions
{
public class TestLinkAttribute : ActionFilterAttribute
{
public string Path { get; set; }

}
}

现在,当我从 HelpPage 区域的 ApiGroup.cshtml 访问该属性时,我可以使用以下命令,它将正确获取该值。

var attrColl = api.ActionDescriptor.GetCustomAttributes<TestLinkAttribute>();

关于c# - MVC Web API 2 - 在操作上使用自定义属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45989196/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com