在CSS Display Module Level 3规范中,有一条注释block container指出:
注意:块容器框可以同时建立块格式上下文和内联格式上下文。
从概念上讲这怎么可能?
那么如何布置儿童箱呢?例如,如果我们在块容器中同时具有内联级和块级框,那么在这种情况下使用哪种格式化上下文?两种格式设置上下文是同时使用还是其中一种“胜出”而另一种被搁置了?
默认情况下,此功能在ASP.NET Core 2.1中有效,但在当前最新的2.2中不起作用。
我刚刚在Visual Studio 2017(社区版)中创建了两个基本的ASP.NET Core API项目,一个项目使用2.1,另一个项目使用2.2模板。然后,我使用Ctrl + F5运行两个项目(例如,不进行调试)。当我分别访问/ api / values URL时,将获得默认的JSON。到目前为止,一切都很好。
现在,当我在2.1项目中更改ValuesController.cs 并在浏览器中单击“刷新”时,我发现加载需要一些时间,因为Web服务器检测到更改并正在重建项目,然后获得新的JSON值。但是,当我对2.2重复相同的过程并在浏览器中单击“刷新”时,我会立即获得旧值(例如,未进行任何项目构建)。
那么如何在2.2中启用此功能?
我在 ASP.NET Core 2.2 中的 WebApi 控制器中有一个简单的操作,如下所示:
[HttpGet("test123")]
public ActionResult<string> Test123()
{
return new OkResult();
}
Run Code Online (Sandbox Code Playgroud)
这编译得很好,但我想知道如何将OkResult对象转换为ActionResult<string>?
这些类有不同的继承链:
OkResult -> StatusCodeResult -> ActionResult
while ActionResult<TValue>only implementsIConvertToActionResult
换句话说,ActionResult<string>不是OkResult类的基类型。
如果我手动执行此操作并将代码更改为:
[HttpGet("test123")]
public ActionResult<string> Test123()
{
var a = new OkResult();
var b = a as ActionResult<string>; // Error CS0039
return b;
}
Run Code Online (Sandbox Code Playgroud)
代码不会编译转换错误:
错误 CS0039:无法通过引用转换、装箱转换、拆箱转换、包装转换或空类型转换将类型“Microsoft.AspNetCore.Mvc.OkResult”转换为“Microsoft.AspNetCore.Mvc.ActionResult”
第一个代码如何工作而第二个代码不起作用?如何从没有公共基类型的对象转换返回类型?
xUnit gives us DisplayName property for [Fact] attribute to specify how our test should be displayed in test explorer in Visual Studio. For example:
public class BooksIntegrationTests
{
[Fact(DisplayName = "GET /api/books returns http status code 200")]
public Task Get_Books_ReturnsCollectionOfBooks()
{
// ... test code
}
}
Run Code Online (Sandbox Code Playgroud)
So instead of displaying method name Get_Books_ReturnsCollectionOfBooks test explorer now shows more friendlier test name GET /api/books returns http status code 200.
But is there an equivalent way for specifying DisplayName on …
我创建了一个基本的 Vue 项目(使用 Vue CLI 3),并且当使用范围属性设置 Vue 组件样式时,热重载模块功能不会应用更改。
<style lang="scss" scoped>
.component-info {
background: #ddd;
padding: 1em;
margin: 1em;
color: blue;
}
</style>
Run Code Online (Sandbox Code Playgroud)
如果我从元素中删除scoped属性<style>,则在保存文件时样式将应用在浏览器中,但样式不再是组件的本地(范围)。
有什么方法可以使用 Vue 作用域样式启用 HMR 吗?
有没有办法v-menu在 Vuetify 2.x 中向组件添加三角形指针?
我的意思是网页上的这个常见细节(例如,此屏幕截图来自 github):
我这里有示例代码,其中的菜单在单击按钮时显示为下拉菜单。我设法通过 CSS 向菜单添加边距40px,使其被向下推。这将为三角形提供一些空间,但是我如何添加这个三角形指针,就像它在 github 上的那样?
ASP.NET Core框架为我们提供了两个定义明确的初始化位置:1 Startup.ConfigureServices().注册DI服务的Startup.Configure()方法2. 中间件管道的配置方法
但是,其他针对我的Web应用程序的初始化步骤又如何呢?它们应该去哪儿,特别是如果它们需要注入依赖项时?
例如,我需要根据配置文件appsettings.json中指定的连接字符串初始化数据库ORM。因此,此初始化代码依赖于IConfiguration可能在注册过程中注册到DI容器中的其他自定义服务Startup.ConfigureServices()
因此,根据这些文章的建议:
https://odetocode.com/blogs/scott/archive/2019/02/14/net-core-opinion-7-startup-task.aspx
https://odetocode.com/blogs/scott/archive/2019/03/07/net-core-opinion-10-move-more-code-out-of.aspx
我试图将初始化逻辑封装在单独的类中,然后为该类创建扩展方法来IWebHostBuilder执行此代码,但是如何使框架注入IConfiguration和其他自定义依赖项进入此扩展方法?另外,我可以确定Startup.ConfigureServices()在注册所有依赖项之后,将执行此代码吗?
有没有更好的或推荐的方式来执行此类任务?
我正在阅读CSS规范,有关视觉格式模型的部分,并试图了解这两个术语之间的区别:containing block和block container box。
使我感到困惑的是,似乎完全不同的概念所使用的单词的变化形式:
box 与 block containing 与 container是block一样的box谈论视觉格式化CSS的时候?如果没有,有什么区别?这两种东西都是在屏幕上“可见”的吗?
总的来说,当我block在规范中看到该怎么看?另外,阅读box规格时应该首先想到什么?
这些概念的一些有用的隐喻或类比对创建心理模型非常有帮助。
我有一个在浏览器中工作并使用 REST API 后端的聊天应用程序。它具有以下业务逻辑规则:
用户可以与任何其他用户开始聊天会话
一个用户一次只能在一个聊天会话中
如果userA并且userB已经开始聊天会话并且该会话当前处于活动状态,那么如果userC尝试与任一服务器userA或userB服务器开始聊天会话应该阻止这种情况并将某种错误返回给userC
我的问题是userC应该收到的此错误的适当 HTTP 状态代码是什么?
这不是客户端的错,因此 4xx 代码似乎不合适。
这不是服务器错误,因此 5xx 代码似乎也不合适。
我将发送带有附加 JSON 信息消息的响应正文,说明为什么请求失败,但是满足 RESTful 原则的适当 HTTP 状态代码是什么?
我试图在 .NET Core 术语中区分这两个概念。我将尝试用一个例子来说明我的困惑。
当我创建一个新的类库项目(例如:)时,dotnet new classlib -o myclasslib生成的.csproj文件如下所示:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
</PropertyGroup>
</Project>
Run Code Online (Sandbox Code Playgroud)
到目前为止,一切都很好。现在,如果我尝试在该项目中添加 WebApi 控制器类(例如,为了在创建的主 WebApi 应用程序中动态加载插件:),dotnet new webapi -o mywebapi我将需要使用ControllerBase类和[ApiController]属性等[HttpGet]内容。为了简单起见,我只是从 ControllerBase 派生 MyController,如下所示:
using System;
namespace myclasslib
{
public class MyController : Microsoft.AspNetCore.Mvc.ControllerBase
{
}
}
Run Code Online (Sandbox Code Playgroud)
尝试构建这个dotnet build我收到错误:
错误 CS0234:命名空间“Microsoft”中不存在类型或命名空间名称“AspNetCore”(您是否缺少程序集引用?)
这是预料之中的,因为我创建了 classlib 项目,但是如果将 .csproj 中的 SDK 更改为Sdk="Microsoft.NET.Sdk.Web"并且也更改TargetFramework为netcoreapp2.2(希望解析对ControllerBase类的引用),如下所示:
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>netcoreapp2.2</TargetFramework>
</PropertyGroup>
</Project>
Run Code Online (Sandbox Code Playgroud)
我在构建项目时遇到同样的错误。SDK …
假设我正在对具有资源的博客 REST API 进行建模Blog,Post并且Comment. 然后我为Blog和Post资源添加以下 URI :
/api/blogs
/api/blogs/{blogId}
/api/blogs/{blogId}/posts
Run Code Online (Sandbox Code Playgroud)
并且由于应该避免深度嵌套,因此我为所有Posts创建了单独的端点以获取它们的 Comment`s:
/api/posts
/api/posts/{postId}
/api/posts/{postId}/comments
Run Code Online (Sandbox Code Playgroud)
现在,由于Post可以从两个不同的 URI 访问资源,如下所示:
我应该如何在 ASP.NET Core API 项目中实现这个而不需要重复的代码?
例如。我应该在同一个控制器的同一个动作中实现这两个端点,还是应该将它分开在两个控制器中(例如处理/api/posts?blogId=123inPostsController和/api/blogs/123/postsin BlogsController)?另外,我应该在两个端点上实现POST,PUT和DELETE操作还是只选择一个作为主要 URI?
在我了解如何执行此操作后,是否可以将相同的方法推广到具有相同关系(例如Post和Comment)的其他资源?
flex-basis我想了解当没有为、width或属性设置显式值时min-width,flexbox 如何计算最终弹性项目的宽度。max-width换句话说,flexbox如何仅根据内容计算flex-item的宽度?
这是一个示例代码(可在codepen上找到):
.container {
display: flex;
width: 600px;
}
.container div {
outline: 1px dotted black;
}Run Code Online (Sandbox Code Playgroud)
<div class="container">
<div>Lorem ipsum dolor sit amet consectetur adipisicing elit. Fuga aspernatur suscipit aliquam beatae vitae harum, eius expedita quidem incidunt velit!</div>
<div>Lorem ipsum dolor sit, amet consectetur adipisicing elit. Error ad natus dolores harum, ex fuga voluptates dignissimos possimus saepe officia.</div>
</div>Run Code Online (Sandbox Code Playgroud)
在这个例子中,两个divs (flex-items)的计算宽度是相同的:(300px我用“inspect element”调试工具看到)。
现在,如果我向第一个 div 中的文本添加 …