gpt4 book ai didi

c# - 从 ASP.NET MVC 操作中删除样板

转载 作者:太空狗 更新时间:2023-10-30 00:10:28 25 4
gpt4 key购买 nike

我几乎在每个 Action 中都有这样的东西:

public ActionResult Show(int object_id)
{
Object obj = ObjectRepository.ById(object_id);
if (obj == null)
{
throw new HttpException(404);
}
if (obj.SomeCheck)
{
throw new HttpException(403);
}
// processing
}

问题是如何将对象获取(和抛出 http 异常)从操作中移开并具有类似这样的东西:

public ActionResult Show(Object obj)
{
// processing
}

UPD:无法更改 ObjectRepository 和模型本身,它不仅用于 ASP.NET,还用于项目的其他部分。

最佳答案

一种选择是将样板重构为私有(private)方法:

private object GetItem(object obj) {
Object obj = ObjectRepository.ById(object_id);

if (obj == null) {
throw new HttpException(404);
}

if (obj.SomeCheck()) {
throw new HttpException(403);
}

return obj;
}

然后:

public ActionResult Show(int object_id) {
object obj = GetItem(object_id);

// processing
}

关于c# - 从 ASP.NET MVC 操作中删除样板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23918317/

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