小编Bla*_*ell的帖子

在没有Static API的应用程序启动时配置AutoMapper v4.2

我正在尝试从旧的静态AutoMapper API迁移到根据此资源执行的新方法.

但是,我对如何在Startup.cs/Global.asax等文件中配置AutoMapper感到困惑.

做这样的事情的旧方法是:

Mapper.Initialize(cfg => {
  cfg.CreateMap<Source, Dest>();
});
Run Code Online (Sandbox Code Playgroud)

然后在整个代码中的任何地方,我可以简单地做:

var dest = Mapper.Map<Source, Dest>(source);
Run Code Online (Sandbox Code Playgroud)

现在使用新版本似乎无法在Application Start上初始化AutoMapper,然后在Controller中使用它.我弄清楚如何做到这一点的唯一方法是在控制器中执行所有操作:

var config = new MapperConfiguration(cfg => {
  cfg.CreateMap<Source, Dest>();
});

IMapper mapper = config.CreateMapper();
var source = new Source();
var dest = mapper.Map<Source, Dest>(source);
Run Code Online (Sandbox Code Playgroud)

我现在在MVC控制器或我的应用程序中的任何其他地方使用它时,是否真的必须配置AutoMapper?是的,文档向您展示了如何以新的方式配置它,但它们只是将其设置为一个名为config的变量,该变量无法在我的整个应用程序中运行.

我找到了关于保持静态感觉的文档.但是我对MyApplication.Mapper是什么以及我应该在哪里声明它感到有点困惑.它似乎是一个全局应用程序属性.

c# asp.net asp.net-mvc automapper

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

何时使用API​​控制器与MVC控制器

我知道WEB API和MVC之间的区别.我也知道在asp.net core 1.0中只有一种类型的控制器可以同时处理MVC和API.

但是,我最近一直在观看很多ASP.NET MVC教程,并注意到教师在Controllers文件夹中创建了一个Api文件夹.

这样他就分出了主要处理ViewModel的所有MVC控制器,并使用View函数告诉MVC哪个视图要从主要处理Dtos的API控制器中显示,并且似乎严格处理数据,而不是视图.

您会认为在MVC应用程序中不会有API控制器吗?特别是因为在核心1.0中你继承了一个类:'Controller'.但是我想当你整合像Angular和Kendo UI这样的前端框架来制作很多ajax请求时,你通常希望通过api来完成它们.

这是我目前的理解:
严格使用MVC控制器仅用于MVC,例如指定应显示哪个视图以及传递视图模型.

使用API​​控制器主要用于ajax调用,从不用于视图初始加载,从不用于MVC CRUD模式.

在谈到这一点时,有人能给我一个更好的标准吗?

c# asp.net asp.net-mvc asp.net-web-api asp.net-core

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

当 asp.net 5 web api 中的代码错误时返回 500 内部服务器错误

我的大部分功能都涉及检查某些内容是否存在。如果没有,我返回 HttpNotFound()。它们还涉及检查参数是否正确。如果不是,我返回 HttpBadRequest()。如果一切正常,我通常会返回 OK(dataGoesHere)。

但是,当使用 Try Catch 块并抛出错误时我应该做什么。在 Catch 中,我想简单地返回存在服务器错误。我见过一些 API 实际上也返回自定义消息。

看起来 ASP.NET 5 中的事情有很大不同。我无法像 Web api 2 中那样返回 BadRequest()、Conflict() 等。

c# asp.net asp.net-web-api asp.net-core

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

可以通过web api传递整数列表,或者我必须使用字符串参数

我有一个场景,我需要在GET请求中向我的Web API发送多个ProductIds.

在我的asp.net web api控制器中有一种方法可以让我的Action方法的参数类型化List<int> productIds.我假设不,我必须像这样传递它们?ProductIds = 1,2,3然后接受它string productIds.

如果有更好的方法,请告诉我.

c# asp.net asp.net-web-api asp.net-web-api2 asp.net-core-1.0

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

使用单一视图模型在MVC Razor View上发布多个表单

我有一个剃刀视图,将包含5个表单.(A,B,C,D,E).这些表单中的每一个都有自己的ViewModel(AViewModel,BViewModel,CViewModel,DViewModel,EViewModel).

我创建了一个父ProductViewModel,该页面将用作唯一的ViewModel.在这个ViewModel中,将是页面上每个表单的所有其他ViewModel(如上所列).

以下是ProductViewModel的属性:

public AViewModel { get; set; }
public BViewModel { get; set; }
public CViewModel { get; set; }
public DViewModel { get; set; }
public EViewModel { get; set; }
Run Code Online (Sandbox Code Playgroud)

我的剃刀视图如下所示:

@model MVCApp.ViewModels.ProductViewModel

@{
    ViewData["Title"] = "Product Detail";
}

<h2>Product Detail</h2>

<form asp-controller="A" asp-action="Save" data-ajax="true" data-ajax-method="POST">
    <div class="form-horizontal">
        <h4>Form A</h4>
        <hr />
        <div asp-validation-summary="ModelOnly" class="text-danger"></div>
        <div class="form-group">
            <label asp-for="AViewModel.Name" class="col-md-2 control-label"></label>
            <div class="col-md-10">
                <input asp-for="AViewModel.Name" class="form-control"/>
                <span asp-validation-for="AViewModel.Name" class="text-danger" />
            </div>
        </div>
        <div class="form-group">
            <label asp-for="AViewModel.StartDate" class="col-md-2 …
Run Code Online (Sandbox Code Playgroud)

c# razor asp.net-core-mvc asp.net-core

6
推荐指数
1
解决办法
4294
查看次数

在没有实体框架和迁移的 ASP.NET Core MVC 应用程序中使用 ASP.NET Identity

是否可以在没有实体框架和实体框架迁移的情况下使用 ASP.NET Identity?我的应用程序的其余部分将使用 Micro ORM 进行数据访问。但是,该应用程序使用内置的 ASP.NET 标识个人用户帐户。

我的目标是仍然能够使用内置的 UserManager 和 LoginManager 类,并另外检索使用 Micro ORM 的用户列表,并消除与 EF/Migrations 相关的任何事情。这可能吗?似乎并非如此,因为原始数据库结构是通过应用初始迁移创建的。

如果有人有这样做的好技术,请分享。

c# asp.net entity-framework asp.net-identity asp.net-core

6
推荐指数
1
解决办法
3972
查看次数

使用 Dapper QueryAsync 方法时 connection.OpenAsync 和 connection.Open 之间的区别

使用 dapper 的 QueryAsync 方法时,使用 connection.OpenAsync() 和 connection.Open() 有什么区别。

异步:

public async Task<IList<Product>> GetListAsync()
    {
        using (var connection = new SqlConnection(_connectionString))
        {
            StringBuilder sql = new StringBuilder();
            sql.AppendLine("SELECT Id, Name ");
            sql.AppendLine("FROM Product ");

            await connection.OpenAsync();
            var tickets = await connection.QueryAsync<Ticket>(sql.ToString());
            return tickets.ToList();
        }
    }
Run Code Online (Sandbox Code Playgroud)

非异步:

public async Task<IList<Product>> GetListAsync()
{
    using (var connection = new SqlConnection(_connectionString))
    {
        StringBuilder sql = new StringBuilder();
        sql.AppendLine("SELECT Id, Name ");
        sql.AppendLine("FROM Product ");

        connection.Open();
        var tickets = await connection.QueryAsync<Ticket>(sql.ToString());
        return tickets.ToList();
    }
}
Run Code Online (Sandbox Code Playgroud)

c# sql-server asp.net sqlconnection dapper

6
推荐指数
2
解决办法
5156
查看次数

没有bower/npm配置文件是最新的.NET Core 2.0 Web App模板的一部分,但是安装了客户端库

最新的ASP.NET Core 2.0模板没有bower配置或packages.json,但附带了客户端软件包,如bootstrap和jquery.我们如何从这里接管并管理这些包.前面的模板很简单,只需使用项目附带的bower配置来维护客户端软件包.

截至目前,我一直在删除lib文件夹中的所有内容,手动创建packages.json或bower配置并重新安装.我在这里错过了什么吗?为什么他们不会为预先安装的软件包配置文件启动,特别是因为预安装的客户端库是从bower安装的.

asp.net bower asp.net-core-mvc asp.net-core asp.net-core-2.0

6
推荐指数
0
解决办法
1276
查看次数

意外IntelliJ Maven导入后,.project文件,.settings文件夹,bin文件夹在VSCode中保持自动生成

尝试将使用Maven pom文件和一个.project文件从头开始制作的现有项目导入到IntelliJ中后,将它们与Eclipse中的图表一起使用到IntelliJ中,这是一堆.settings文件夹,bin目录(src,target,pom)和.project具有以下内容的文件:

<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
    <name>xyz</name>
    <comment></comment>
    <projects>
    </projects>
    <buildSpec>
        <buildCommand>
            <name>org.eclipse.m2e.core.maven2Builder</name>
            <arguments>
            </arguments>
        </buildCommand>
    </buildSpec>
    <natures>
        <nature>org.eclipse.m2e.core.maven2Nature</nature>
    </natures>
</projectDescription>
Run Code Online (Sandbox Code Playgroud)

请注意,在进行导入之前,由于在Eclipse中使用图表,因此在我的目录中确实有一个.project文件。

知道发生了什么吗?以及自IntelliJ导入以来,VSCode为何不断自动生成所有这些随机数据。

我习惯于只使用我的Pom文件。

java intellij-idea maven visual-studio-code

6
推荐指数
1
解决办法
467
查看次数

创建具有固定标题,固定侧栏导航,使用flexbox固定内容的布局

我正在使用FlexBox为Web应用程序创建布局.请注意,我不是为了这个而尝试使用bootstrap.我只想在普通的flexbox css中做到这一点.

这是我想要的结构:

第1行:固定标题,高64像素.第2行:修复了侧面占据250px左侧的固定侧面,固定内容占据了右侧的剩余部分.

<div id="row1">
     <div class="header"></div>
</div>
<div id="row2">
     <div class="sidenav"></div>
     <div class="main-content"></div>
</div>
Run Code Online (Sandbox Code Playgroud)

这里的关键是sidenav和main-content应该都是100%的屏幕,并带有自己的滚动条.实际的浏览器滚动条不应该水平或垂直显示.

html javascript css css3 flexbox

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