小编Ami*_*adi的帖子

Validate Values before Apply PATCH in REST

I'm looking for a way to validate and check the values of the model that is sent to my PATCH method for updating. I haven't found my answer yet.

我已经阅读了 JsonPatch 文档,但没有找到我想要的。

场景:我有一个 RESTful Web API,并且说我有一个名为“users”的资源。假设客户端想要部分更新“用户”资源:(PATCH api/users/{id}),例如,当客户端发送 JsonPatch 文档时,我必须检查是否发送电子邮件进行更新,如果是,我必须检查电子邮件是否重复。那么,我怎么能用下面这样的方法来做到这一点:(我使用 ASP.NET Web API)

[HttpPatch]
[Route("{userId}")]
public HttpResponseMessage UpdateUser(int userId, JsonPatch.JsonPatchDocument<User> patchDocument)
{
    // I could do this but before that I wanna validate the proeprties:
    patchDocument.ApplyUpdatesTo(dbContext.Users.Single(u => u.Id == userId));
}
Run Code Online (Sandbox Code Playgroud)

asp.net rest patch asp.net-web-api json-patch

5
推荐指数
0
解决办法
1037
查看次数

如何在 Blazor 中单击按钮时渲染组件?

我是 SPA 框架和 Blazor 的新手,因此这可能是一个很容易回答的问题,尽管我在其他地方找不到答案。

我想在用户单击特定按钮后立即在页面上的某个位置显示一个组件。我目前是这样实现的:

@page "/test"

<button type="button" @onclick="() => showSignUpComponent = true">
    Show Sign Up Window
</button>

@if (showSignUpComponent)
{
    <SignUp />
}

@code {
    bool showSignUpComponent;
} 
Run Code Online (Sandbox Code Playgroud)

我想知道是否有更好、更干净的方法(即正确的方法)在 Blazor 中执行类似的操作,或者这是常见的“标准”方法?

blazor blazor-server-side asp.net-blazor blazor-webassembly

5
推荐指数
1
解决办法
6790
查看次数

在 c# asp.net Core 中压缩图像

有谁知道如何在 c# asp.net core 中压缩任何类型(jpg、png、gif 等)的图像。WebP 在核心上不起作用。我下载了 ImageProcessor Core 库,但不知道如何压缩/降低图像质量。这是我们尝试过的,但没有奏效。

    newImage.Quality = old_image.Quality-20;
    newImage.HorizontalResolution = 0;
    newImage.VerticalResolution = 0;
Run Code Online (Sandbox Code Playgroud)

c# image-compression asp.net-core

4
推荐指数
1
解决办法
2万
查看次数

“不要在选择器 (CSS) 中使用 ID” 那么,用什么来代替 ID?

一个CSS规则皮棉是:“这是最好不要使用的ID中选择”。那么,我们应该使用什么来代替 ID 来指向一个唯一元素?例如,假设我有几十个元素的类名为my-class,而我只希望其中一个具有特殊的 CSS 属性。我能做什么?

css stylesheet csslint

4
推荐指数
2
解决办法
1万
查看次数

为什么无法在通用类型参数中进行隐式的子级到父级转换?

我一直在学习C#中的协方差和协方差,但是在深入探讨之前,出现了一个问题:

class Program
{
    static void Main(string[] args)
    {
        PersonCollection<Person> personCollection = new PersonCollection<Person>();
        IMyCollection<Teacher> myCollection = personCollection; // Here's the error:
        // Cannot implicitly convert type 'PersonCollection<Teacher>' to 'IMyCollection<Person>'
    }
}
class Person { }
class Teacher : Person { }
interface IMyCollection<T> { }
class PersonCollection<T> : IMyCollection<T> { }
Run Code Online (Sandbox Code Playgroud)

众所周知,我们可以将派生类的实例隐式转换为基类。因此,在上面的代码中,虽然“老师”类是从“人”类派生的,但IMyCollection<Teacher>不能转换为IMyCollection<Person>,为什么?(注意:我想知道原因,而不是解决方法)

c# generics inheritance

4
推荐指数
1
解决办法
506
查看次数

当“contentType”为“false”时,使用 Ajax 从 Web 服务返回 JSON 而不是 XML

我进行了 AJAX 调用,将图像文件发送到我的 Web 服务 (.asmx) 方法之一。一切都很好,但问题是 Web 服务返回 XML 而不是 JSON,因为我必须设置为'contentType'' false',否则文件无法发送。(如果我设置contentTypeapplication/json; charset=utf-8,它会返回 JSON,但我不能这样做,因为我正在发送一个文件。)

这是我的 JavaScript:

function setAvatar(imageFile, successCallback) {
var formData = new FormData();
formData.append("UploadedAvatar", imageFile);
$.ajax({
    type: "POST",
    url: "/Services/UserService.asmx/SetAvatar",
    contentType: false,
    processData: false,
    dataType: 'json',
    data: formData,
    success: function (result) {
        alert(result.d);
        alert(result.d.IsSuccessful);
        if (typeof successCallback === 'function')
            successCallback(result);
    }
});
Run Code Online (Sandbox Code Playgroud)

以及网络服务方法:

[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public Result SetAvatar()
{
    HttpPostedFile postedFile = HttpContext.Current.Request.Files["UploadedAvatar"];
    Image avatar = Image.FromStream(postedFile.InputStream, true, …
Run Code Online (Sandbox Code Playgroud)

javascript asp.net ajax jquery web-services

4
推荐指数
1
解决办法
2766
查看次数

为什么 EF 在进行一对多连接时会不必要地检索 ID?

假设您有一个Author域类和一个Book域类,每个类Author可以有 0 个或多个Books(一对多关系)。

如果您执行以下操作:

var dtos = dbContext.Authors.Select(a => new
{
    Name = a.Name,
    BookNames = a.Books.Select(b => b.Name).ToList() 
}).ToList();
Run Code Online (Sandbox Code Playgroud)

您希望生成以下 SQL,因为您只请求了作者姓名和每位作者的书名:

SELECT [a].[Name], [b].[Name]
FROM [Authors] AS [a]
LEFT JOIN [Books] AS [b] ON [a].[Id] = [b].[AuthorId]
ORDER BY [a].[Id], [b].[Id]
Run Code Online (Sandbox Code Playgroud)

但是,实体框架会导致生成以下 SQL:

SELECT [a].[Name], [a].[Id], [b].[Name], [b].[Id]
FROM [Authors] AS [a]
LEFT JOIN [Books] AS [b] ON [a].[Id] = [b].[AuthorId]
ORDER BY [a].[Id], [b].[Id]
Run Code Online (Sandbox Code Playgroud)

这显然是不必要地检索所有作者的 ID 和他们所有书籍的 ID。

这是当您从另一方(即从书籍到作者)进行连接时不会发生这种情况。例如,当您请求书名及其作者姓名时,例如:

var …
Run Code Online (Sandbox Code Playgroud)

c# sql-server entity-framework entity-framework-core

4
推荐指数
1
解决办法
110
查看次数

数据库设计:如何对一个表可以属于另外两个表中的任何一个的关系进行建模?

我有三个实体:

  1. 课程
  2. 部分

每门“课程”由若干“课”组成。课程中的“课程”可以分为“部分”,也可以不分为“部分”。

因此,课程的内容可能如下所示:

Foo Course:
    Lesson 1
    Lesson 2
    Lesson 3
    Lesson 4
Run Code Online (Sandbox Code Playgroud)

或者像这样:

Bar Course:
    Section 1:
        Lesson 1
        Lesson 2
    Section 2:
        Lesson 3
        Lesson 4
Run Code Online (Sandbox Code Playgroud)

因此,换句话说,一门课程可以直接有“课程”,也可以有“部分”,而“部分”又有“课程”。

从另一个角度来看,“课程”可以直接属于“课程”,也可以属于“部分”,而“部分”又属于“课程”。

我正在努力找出如何最好地在关系数据库中实现这样的结构。

如果每个“课程”都必须属于一个“部分”,那就很容易了,我可以简单地有一个“课程”表,一个带有“CourseId”列的“部分”表,以及一个带有“课程”表的“课程”表“SectionId”列。

但我的情况并不那么简单。“部分”可能作为“课程”和多个“课程”之间的中间人存在,但也可以不存在,在这种情况下,“课程”直接具有“课程”,而不存在“部分”。

对于如何在关系数据库的上下文中理想地实现这种结构的任何建议,我将不胜感激。

谢谢。

database database-design relational-database

4
推荐指数
1
解决办法
1438
查看次数

客户端可以通过浏览器更改javascript值吗?

我有疑问,我没有在其他任何地方找到答案.

客户可以更改我脚本中的函数参数,变量和...的值吗?

例如,我有一个调用JS函数的按钮,该函数从数据库中删除具有指定Id的产品:

<button onclick="deleteProduct(productId: 123);">Delete Product</button>
Run Code Online (Sandbox Code Playgroud)

当客户来到我的网站时,他们可以打开浏览器的"检查元素"工具,手动更改我的JS函数(deleteProduct)的product id参数值.然后他们可以通过更改productId删除任何产品.

这可能吗?如果是,我们如何防止它?

javascript browser client

3
推荐指数
1
解决办法
104
查看次数

禁用特定路径的“httpErrors”元素

我在使用 Web.config 中的元素时遇到问题httpErrors

我决定使用 httpErrors 元素来处理 http 错误并在我的 (ASP.NET MVC) 应用程序中显示自定义错误页面。问题是我还有一个 API,我不希望 httpErrors 元素处理其错误,它有自己的自定义错误响应。

我希望在 API 方面禁用它。

我可以做些什么来实现我想要的吗?

xml asp.net error-handling asp.net-mvc web-config

3
推荐指数
1
解决办法
464
查看次数