问题标签 [asp.net5]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 包装所有响应
我想包装我所有的 http 响应。
例如,我们有一个返回一些 JSON 数据的操作:
我希望我的回复看起来像:
如果有错误,则响应必须ErrorMessage
在响应中包含字段。
在 mvc 5 中我使用了DelegationHandler
,但在 asp.net 核心中没有实现这个类。现在,我们必须使用中间件。
这是 mvc 5 的代码:
并且,一个用于 asp.net 核心的中间件。asp.net 核心中没有TryGetContentValue
,HttpError
和其他东西。所以,我想先阅读响应正文:
但是,Body
流是CanRead
相等false
的,我得到流无法读取的错误。如何正确包装响应?
reactjs - 如何在 MVC6 应用程序中为傻瓜呈现简单的 React 组件
我在 Visual Studio 2015 中有一个简单的 mvc6 站点解决方案。
在我的一个页面中,我有
但是组件不渲染。我必须在页面中包含哪些脚本才能使其呈现?我是一个反应的新手。
试图自己解决这个问题时,我对诸如 ' npm
, bower
, babel
' 之类的大量术语感到非常困惑,但我在任何地方都找不到关于如何在 Visual Studio 2015 中使用这些东西的从头开始的不错示例。此外,我发现了以下建议只是不工作。
例如,我读到“你应该运行npm install babel
”之类的内容,但没有人提供关于我应该在 Visual Studio 中的哪个位置执行此命令的信息。其他人谈论package.json
应该存在于我的解决方案中某处的文件,但它只是不存在。
我真的不明白为什么事情会如此复杂。在过去,当您想使用库时,只需<script>
在页面的开头或结尾放置一个元素,就可以使用它。
authentication - 30分钟后如何自动刷新票?
客户告诉我,连续使用网络30分钟后,弹出一个错误,说:
“发生错误!服务器未发送错误详细信息。”
我检查了源代码,发现它应该是由ticket.Properties.ExpiresUtc
设置为 30 分钟的属性引起的。30分钟后如何自动刷新票?
30 分钟的限制在Authenticate
webapi /api/controllers/AccountController.cs中。
堆栈跟踪如下:
aspnetboilerplate - AbpApiExceptionFilterAttribute - 需要一个值,但请求中不存在
我有一个如下的 webapi 控制器:
并且请求将名称和 guid 作为查询字符串,例如: http ://www.example.com/api/Controller1/GetSample?name=james&guid=
指南是空的。
当我发出请求时,出现错误:
我在哪里可以更改验证规则?
model-binding - ASP.NET 模型绑定器不填充模型值
我想对 ASP.NET 5 应用程序中的所有控制器使用全局模型验证过滤器。
但是我遇到了一个问题,即默认绑定器不会从 URI 填充模型值(但对于有体的 POST 操作来说效果很好)。例如,我有带有动作的控制器:
通过 URI 请求此控制器,例如,localhost:12345/test/10/return
返回 'null' 响应。对于另一个复杂模型也是如此,访问一些 [Required] 标记的字段会引发 NRE,例如 binder 会忽略路由中的 {id} 表达式。
任何可以关闭此行为的想法?
c# - 在 C# Dotnet 5.0 中将(字符串、多维数组)的对象转换为 JSON 结果
我有一个具有以下结构/类的控制器:
似乎它无法序列化 Result 对象,我收到以下异常:
失败:Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware[1]
执行请求时发生未处理的异常。
System.NotSupportedException:不支持类型“System.Int32[,]”。
在 System.Text.Json.ThrowHelper.ThrowNotSupportedException_SerializationNotSupported(Type propertyType)
在 System.Text.Json.Serialization.Converters.IEnumerableConverterFactory.CreateConverter(Type typeToConvert, JsonSerializerOptions 选项)
在 System.Text.Json.Serialization.JsonConverterFactory.GetConverterInternal(Type typeToConvert , JsonSerializerOptions 选项)
在 System.Text.Json.JsonSerializerOptions.GetConverter(类型 typeToConvert)
如何使用(字符串,多维数组)序列化对象?另外我有一个期望结果的反应应用程序,字符串也将被序列化(有 \n\n \r ....),是客户端应用程序反序列化它的工作还是我需要找到一种返回非序列化 JSON 对象的方法?
c# - Automapper,映射多对多表上的属性
我正在研究.NET 5 API。
我必须使用序列化UnitDto类的 Json 回复 get 调用,并在其中包含所有InstDto类的列表,但我需要一个驻留在UnitInst对象上的属性(多对多表)
我的课程:
我的dto
我以这种方式映射,没关系,但我无法从 UnitInst 类(多对多表)中检索 IPv4 属性
我该如何解决?
asp.net-core - 使用 Binding ASP.Net Core 5 规范化字符串输入
我需要规范化字符串数据(将一些字符相互替换,例如:'ی' 与 'ي' 或修剪它)。为此,我创建了以下模型绑定器,如下所示:
此活页夹适用于两者Query
和Route
绑定,但如果我使用FromBody
属性则失败。它失败了,因为BindModelAsync
永远不会被调用。我在这里找到了针对此问题提出的另一个问题,遗憾的是没有答案。
我试图扩展它,ComplexObjectModelBinder
但它是一个sealed
类(并且也不提供任何构造函数)。因此,我尝试扩展ComplexTypeModelBinder
注释为已过时的内容。
我已经ComplexTypeModelBinderProvider
从源代码中复制了逻辑,令我惊讶的是BindModelAsync
,我StringModelBinder
现在收到了电话。但仍然失败,因为bindingContext.ValueProvider
它只包含路由的提供者,结果仍然为空。
我现阶段的活页夹提供者:
我还尝试从正文创建一个提供程序并将我的更改StringModelBinder
为:
现在的问题是,在 .Net 5 中进行这种标准化的最佳方法是什么?
谁可能担心:这个问题可能看起来是重复的,但我找不到任何与 .Net 5 相关的内容,如果有问题可以回答这个ComplexTypeModelBinder
问题,它不适合 .Net 5,因为它已经过时了。
asp.net-core - 在 ASP.Net Core 5 WebAPI 中启用 CORS
有数百万篇与此问题相关的文章和问题,但我找不到我的代码有什么问题。我有Startup
, StartupProduction
, 和StartupDevelopment
如下。另外,我正在使用ASP.Net Core 5
,并且根据文档,我认为我这样做是正确的。
仅供参考,起初,我用于AllowAnyOrigin
开发,但我也进行了测试.WithOrigins("http://localhost:3000")
,它工作正常。我的后端https://localhost:44353
在开发和https://api.example.com
生产中运行。
我还尝试了默认策略。
更新
我已经在 Visual Studio 中设置Environment
为Production
调试它,现在我在开发中面临同样的问题。
CORS 策略阻止了从源“http://localhost:3000”获取“https://localhost:44353/api/v1/User”的访问权限:对预检请求的响应未通过访问控制检查:否请求的资源上存在“Access-Control-Allow-Origin”标头。如果不透明的响应满足您的需求,请将请求的模式设置为“no-cors”以获取禁用 CORS 的资源。
解决方法
我注意到是 IIS 阻止了请求。它仅"AllowedHosts": "*",
在我的appsettings.json
. 因此,作为一种解决方法,我"MyRandomKey": "https://example.com",
在appsettings.json
我的Startup
.