小编Win*_*rpe的帖子

Angular 7发送多个文件到服务器

我有一个关于将 Angular 7 应用程序的集合发送File到 .NET Core 3 服务器的问题。

File我有用于向服务器发送单个数据的功能代码。File但是当我尝试发送- ie:的集合时,我遇到了问题File[]。这是控制器的操作:

[HttpPost]
public async Task<IActionResult> Upload([FromForm(Name = "files")] List<IFormFile> files)
{
      // implementation...
{
Run Code Online (Sandbox Code Playgroud)

FormData按照用于将单个文件发送到服务器的代码发送:

const formData = new FormData();
formData.append('files', this.files);
Run Code Online (Sandbox Code Playgroud)

这会导致编译器出现错误(参见屏幕截图):

在此输入图像描述

FormData 无法处理File[].

如果我要更改相同的代码来处理单个文件,例如通过选择集合中的第一个元素,文件将成功发送到服务器。就像这样:

const formData = new FormData();
formData.append('files', this.files[0]);
Run Code Online (Sandbox Code Playgroud)

请求的发送方式如下:

const httpOptions = {
  headers: new HttpHeaders({ 'Content-Disposition' : 'multipart/form-data' }),
};

  postPhotos(model: FormData): Observable<any | ErrorReportViewModel> {
    return this.http.post('api/Photograph', model, httpOptions)
    .pipe(
      catchError(error => this.httpErrorHandlerService.handleHttpError(error))); …
Run Code Online (Sandbox Code Playgroud)

angular7 asp.net-core-3.0

8
推荐指数
1
解决办法
7159
查看次数

使用Automapper映射自引用关系

我有一个涉及.NET Core的自引用关系ApplicationUser

public class Network
{
    public ApplicationUser ApplicationUser { get; set; }
    public string ApplicationUserId { get; set; }
    public ApplicationUser Follower { get; set; }
    public string FollowerId { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

这样就可以在用户模型中保留“关注者”和“关注者”的列表:

public class ApplicationUser : IdentityUser
{
    //...
    public ICollection<Network> Following { get; set; }
    public ICollection<Network> Followers { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我使用Automapper将关注者和关注列表映射到视图模型。这是视图模型:

public class UserProfileViewModel
{
    //...
    public IEnumerable<FollowerViewModel> Followers { get; set; }
    public IEnumerable<NetworkUserViewModel> Following { get; set; } …
Run Code Online (Sandbox Code Playgroud)

c# automapper asp.net-core

7
推荐指数
1
解决办法
266
查看次数

更新 EF Core 中的相关实体

我使用 Entity Framework Core 并采用代码优先的方法。当将更改保存到对其相关对象之一进行更改的实体时,我遇到了此错误:

“实体类型“Bird”上的属性“BirdId”是键的一部分,因此无法修改或标记为已修改。要使用标识外键更改现有实体的主体,请首先删除依赖项并调用“SaveChanges”,然后将受抚养人与新委托人联系起来。”

当我将更改保存到类型实体Observation并更新到相关Bird对象时,我遇到了错误。我已包含以下模型设置:

public class Observation
{
    [Key]
    public int ObservationId { get; set; }

    // other properties...

    public int BirdId { get; set; }

    public Bird Bird { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

Bird 类如下所示:

public class Bird
{
    [Key]
    public int BirdId { get; set; }

    // other properties...

    public ICollection<Observation> Observations { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我仅依赖 EF Core 模型约定(我没有在方法中添加代码OnModelCreating),该约定从 EF 迁移中设置数据库,如下所示:

        migrationBuilder.CreateTable(
            name: "Observation",
            columns: table => …
Run Code Online (Sandbox Code Playgroud)

entity-framework-core

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

在 Google 地图上定位浮动面板/文本框

我正在尝试在 Google 地图上定位浮动面板文本框。我想要下图中红色框中的文本框位置:

在此输入图像描述

我可以让浮动面板出现在地图容器上方(请参见下面的代码)。

HTML

<div class="container" id="floating-panel">
    <input id="address" type="text" value="">
    <input id="submit" type="button" value="Search">
</div>

<div id="map" class="class--map">
</div>
Run Code Online (Sandbox Code Playgroud)

CSS

.class--map {
    width: 100%;
    height: 400px;
    background-color: grey;
}
Run Code Online (Sandbox Code Playgroud)

我尝试将浮动面板移动到地图容器中,如下所示:

<div id="map" class="class--map">
    <div class="container" id="floating-panel">
        <input id="address" type="text" value="">
        <input id="submit" type="button" value="Search">
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

但这会将面板和文本框隐藏在地图后面。

如何最好地将地图上的面板/文本框放置在正确的位置?

html google-maps

0
推荐指数
1
解决办法
1499
查看次数