如何防止ASP.NET Core在空请求主体上将模型状态标记为无效? - c#

我有一个从请求主体接收参数的动作。客户端使用二进制格式使用此API,该格式可能会将请求模型序列化为空主体。

如果我使用空的请求正文敲击这些操作之一,则会使用请求模型的默认值(即null)调用该操作,但模型状态会标记为无效。通常这是可以的,但是如果模型状态无效,我有一个中间件会响应并显示错误。

有什么方法可以使ASP.NET Core更优雅地处理空的请求主体,并且不将模型状态标记为无效?

参考方案

在浏览ASP.NET Core源代码之后,我发现MvcOptions具有控制此行为的属性:

services.AddMvc()
    .AddMvcOptions(o => o.AllowEmptyInputInBodyModelBinding = true);

ASP.NET Core-在Singleton注入上存储库依赖项注入失败 - c#

我正在使用SoapCore为我的ASP.NET Core MVC应用程序创建Web服务。我正在使用Entity Framework Core和简单的存储库模式来获取我的数据库数据。我通过Startup.cs中的.AddSingleton()注入存储库类:services.AddSingleton<IImportRepository, ImportRep…

如何在ASP.NET Core Web应用程序中增加JSON反序列化MaxDepth限制 - c#

我们正在将ASP.NET Core 2.1与.NET Framework 4.6.2结合使用。我们有一个客户需要向我们的Web应用程序发送一个很大程度上嵌套的json结构。当他们进行此调用时,我们将输出以下日志并返回错误: 读取器的MaxDepth超过了32。路径“ super.long.path.to property”,第1行,位置42111。”我浏览了…

ddl在服务器中未更新-asp.net - javascript

我在ASP.NET c#上工作。我有一个DropDownList。 (runat =“ server”)在$ {document).ready上,我更新了它的值:$(document).ready(function () { document.getElementById("ddl").value = "abc"; ……

Asp.net Core 2.1记录 - c#

我想了解登录asp.net cortex 2.1的问题。我的目标是注册所有可能导致kestrel服务器损坏的严重错误。据我从文档中了解Microsoft.Extensions.Logging和Serilog,您需要在每个控制器中创建一个记录器,并设置记录条件(例如try / catch)。是否有一种更方便的方法可以从一个地方记录项目中的任何严重错误?我将不胜…

asp.net mvc或javascript将另一页的结果返回给方法 - c#

是否可以将另一个页面的结果返回给JavaScript方法或C#控制器操作?我有一个共享的复杂页面,该页面在我的网站上遍布使用,当前用于在C#后端的用户数据上设置单个变量。当用户完成共享的复杂页面后,我将返回引用页面。当用户在刷新或返回时将其作为url参数传递给返回的页面时,我返回的页面包含新选择的变量。我有一个新页面,我希望从我的共享复杂页面中返回该变量。但…