当前位置: 首页 > news >正文

惠州定制网站制作推荐/国内哪个搜索引擎最好用

惠州定制网站制作推荐,国内哪个搜索引擎最好用,网站开发与软件开发的区别,爱站小工具np.array空值处理ASP.Net Core MVC是ASP.Net MVC框架的.Net Core副本。 您可以利用“模型-视图-控制器”设计模式利用ASP.Net Core MVC来构建跨平台,可伸缩的高性能Web应用程序和API。 我们一直希望在我们的Web应用程序中优雅地处理错误。 当涉及到对请求的空响应或…

np.array空值处理

ASP.Net Core MVC是ASP.Net MVC框架的.Net Core副本。 您可以利用“模型-视图-控制器”设计模式利用ASP.Net Core MVC来构建跨平台,可伸缩的高性能Web应用程序和API。

我们一直希望在我们的Web应用程序中优雅地处理错误。 当涉及到对请求的空响应或从操作方法返回空值时,ASP.NET Core MVC框架将返回HTTP状态代码204,即“无内容”响应。 在本文中,我们将研究当操作方法返回空值时如何更改此默认行为。

[Microsoft .Net 5将.Net Framework和.Net Core结合在一起:找出.Net Standard和.Net Core的合并对开发人员意味着什么 。 | 从InfoWorld的Microsoft Architect博客中了解如何充分利用.Net Framework和.Net Core。 | 通过InfoWorld的App Dev Report新闻通讯了解编程方面的热门话题。 ]

若要使用本文中说明的代码示例,您应该在系统中安装Visual Studio 2019。 如果您还没有副本,则可以在此处下载Visual Studio 2019 。

在Visual Studio中创建一个ASP.Net Core MVC项目

首先,让我们在Visual Studio 2019中创建一个ASP.Net Core项目。假设系统中安装了Visual Studio 2019,请按照下面概述的步骤在Visual Studio中创建一个新的ASP.Net Core项目。

  1. 启动Visual Studio IDE。
  2. 点击“创建新项目”。
  3. 在“创建新项目”窗口中,从显示的模板列表中选择“ ASP.Net Core Web应用程序”。
  4. 点击下一步。
  5. 在“配置新项目”窗口中,指定新项目的名称和位置。
  6. 单击创建。
  7. 在接下来显示的“创建新的ASP.Net Core Web应用程序”窗口中,选择.Net Core作为运行时,并从顶部的下拉列表中选择ASP.Net Core 2.2(或更高版本)。
  8. 选择“ Web应用程序(Model-View-Controller)”作为项目模板,以创建新的ASP.Net Core应用程序。
  9. 确保未选中“启用Docker支持”和“配置HTTPS”复选框,因为我们此处将不使用这些功能。
  10. 确保将身份验证设置为“无身份验证”,因为我们也不会使用身份验证。
  11. 单击创建。

按照这些步骤应该在Visual Studio中创建一个新的ASP.Net Core项目。 我们将在以下各节中使用该项目来说明如何在ASP.Net Core MVC中处理空响应。

在ASP.Net Core中创建新的控制器

在“解决方案资源管理器”窗口中,选择项目中的Controllers文件夹,然后右键单击并选择Add-> Controller以创建新的控制器。 将控制器类的名称指定为DemoController。 接下来,用以下代码替换DemoController类的代码。

[Route("api/[controller]")]
    [ApiController]
    public class DemoController : ControllerBase
    {
        readonly Repository repository = new Repository();
        [HttpGet]
        public ActionResult Get()
        {
            string item = repository.GetMessage();
            return Ok(item);
        }
        [HttpGet("{id}", Name = "Get")]
        public IActionResult Get(int id)
        {
            string item = repository.GetMessage();
            return Ok(item);
        }
    }

在ASP.Net Core中创建虚拟存储库类

这是Repository类的虚拟版本,其中仅包含一个返回null的方法。 当然,这仅是出于说明目的。

public class Repository
    {
        public string GetMessage()
        {
            return null;
        }
    }

ASP.Net Core MVC如何处理空值

当您调用上面显示的DemoController的HttpGet端点时,ASP.Net Core MVC的开箱即用行为是使用HTTP状态代码2014(即“无内容”)进行答复,如下图所示。

aspnet核心http状态2014 IDG

但是为什么会这样呢? 当发回响应时,ASP.Net Core MVC框架尝试从可用的格式化程序中选择一个输出格式化程序,以处理响应对象。 通常,此格式化程序可以是JSON格式化程序,XML格式化程序或适用于媒体类型的任何格式化程序。

但是,在处理空值时,框架使用不同的格式化程序。 这个称为HttpNoContentOutputFormatte的格式化程序负责将空响应转换为HTTP状态码204或“无内容”响应。

在ASP.Net Core中禁用HttpNoContentOutputFormatter

您可以通过禁用HttpNoContentOutputFormatter来禁用ASP.Net Core MVC中的默认空值处理行为。

为此,请在Startup类的ConfigureServices方法中编写以下代码。

services.AddMvc(f =>
  {
      f.OutputFormatters.RemoveType
      (typeof(HttpNoContentOutputFormatter));
      f.OutputFormatters.Insert(0, new
      HttpNoContentOutputFormatter
      {
          TreatNullValueAsNoContent = false
      });
});

这将禁用HTTP状态代码204行为。 现在,响应将是HTTP状态代码200,即“确定”,并将空值写入响应对象。

在ASP.Net Core中返回HTTP状态代码404

让我们更新控制器的操作方法以返回HTTP状态代码404。这是DemoController的更新版本,供您参考。

[Route("api/[controller]")]
    [ApiController]
    public class DemoController : ControllerBase
    {
        readonly Repository repository = new Repository();
        [HttpGet]
        public ActionResult Get()
        {
            string item = repository.GetMessage();
            if (item == null)
                return NotFound();
            return Ok(item);
        }      
    }

这次运行操作方法时,将返回HTTP状态代码404,即“未找到”,如下图所示。

aspnet核心http状态404 IDG

在ASP.Net Core中返回HTTP状态代码404的更好方法

返回HTTP状态代码404的更好选择是使用操作过滤器或结果过滤器。

public class NotFoundActionFilterAttribute : ActionFilterAttribute
    {
        public override void OnActionExecuted(ActionExecutedContext context)
        {
            if (context.Result is ObjectResult)
            {
                ObjectResult objectResult = context.Result
                as ObjectResult;
                if (objectResult.Value == null)
                    context.Result = new NotFoundResult();
            }
        }
    }

然后,您可以在操作级别,控制器级别或全局级别应用过滤器。 若要全局应用筛选器,请在Startup类的ConfigureServices方法中编写以下代码。

public void ConfigureServices(IServiceCollection services)
{
    services.AddMvc(f =>
    {
        f.Filters.Add(new NotFoundResultFilterAttribute());
    });
}

使用ASP.Net Core MVC时,可以使用IActionResult或ActionResult <T>或任何对象返回数据。 从操作方法返回数据时,框架进行必要的序列化。

但是,当操作方法返回空值时,ASP.Net Core MVC不会尝试使用任何可用的格式化程序对其进行序列化。 而是,框架返回HTTP状态代码204:成功,没有内容。 幸运的是,您可以更改此默认行为以适合您的需求。

翻译自: https://www.infoworld.com/article/3434624/how-to-handle-null-values-in-aspnet-core-mvc.html

np.array空值处理

http://www.lbrq.cn/news/740503.html

相关文章:

  • 最快网站备案/国家免费职业培训平台
  • 乙方宝招标官网/宁波网站推广优化哪家正规
  • 做单页网站的软件/seo关键词排名优化案例
  • 专业长春网站建设哪家好/最新推广赚钱的app
  • 北京未来科技城开发建设有限公司 网站/四年级下册数学优化设计答案
  • 连云港网站建设方案/西安企业seo外包服务公司
  • 专业做网站建/如何自己建设网站
  • 网站开发毕业设计源码/地推拉新app推广怎么做
  • 可以做立体图形的网站/怎样看网页的友情链接
  • 企业官方网站的作用/网页制作用什么软件做
  • 百度不收录网站关键词/大数据营销系统多少钱
  • 招聘网站可以做两份简历吗/企业网站快速建站
  • 如何重装一下wordpress/seocms
  • 手机版网站怎样做推广/南宁一站网网络技术有限公司
  • wordpress机械行业模板/网站内容优化怎么去优化呢
  • 平台骗了钱/长沙seo管理
  • 网站和app设计区别/网络营销策划书1500字
  • 河北网站建设备案价格/企业网站建设原则是
  • 从手机上可以做网站吗/公众号推广方法
  • 道路建设网站专题/免费关键词排名优化
  • 深圳建站公司招聘/外贸营销网站怎么建站
  • 淘宝客网站怎么做的/微信crm系统
  • 莱芜找工作网站/2345网址中国最好
  • 建设事业单位网站多少钱/推广普通话手抄报内容怎么写
  • 茶叶网站模板/西安seo全网营销
  • 网站设计团队介绍/龙华百度快速排名
  • 国外网站推广/软广告经典例子
  • 欧洲美女网站/今天
  • 做商城网站都需要什么/创建自己的网站
  • 门户网站建设为企业带来的好处/找相似图片 识别
  • Diamond开发经验(1)
  • 力扣面试150(60/150)
  • AJAX (一)
  • 部署tomcat应用时注意事项
  • 单片机驱动LCD显示模块LM6029BCW
  • 【lucene】tip文件详解