标签: asp.net-core-mvc

手动添加参数?

Aspnet.Core 上的 Swashbuckle 通常从方法签名中读取所需的参数,例如

[HttpGet]
[Route("/api/datasets/{id}")]
[SwaggerOperation("DatasetsIdGet")]
[SwaggerResponse(200, type: typeof(DataSet))]
public IActionResult DatasetsIdGet([FromRoute]string id)
{
    string exampleJson = null;

    var example = exampleJson != null ? JsonConvert.DeserializeObject<DataSet>(exampleJson) : default(DataSet);
    return new ObjectResult(example);
}
Run Code Online (Sandbox Code Playgroud)

ID 来自路由,可通过 Swagger-UI 和生成的规范获得。

不幸的是,我必须上传一些非常大的文件,并希望禁用某个方法的表单绑定

public async Task<IActionResult> Upload()
{
// drain fields manually. see https://docs.microsoft.com/en-us/aspnet/core/mvc/models/file-uploads
// assume that there is the field bigupload.
}
Run Code Online (Sandbox Code Playgroud)

使用 Swagger-Editor 我可以很容易地描述这个场景 - 但是我如何说服 Swashbuckle 这个方法有 bigupload 作为必填字段?

编辑

这是我基于 swashbuckle github 中的一个线程的解决方案

public class ImportFileParamType : IOperationFilter
{

    /// <summary> …
Run Code Online (Sandbox Code Playgroud)

c# asp.net-core-mvc swashbuckle

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

ASP.Net vNext DbContext依赖注入多个请求问题.

我试图使用ASP.Net vNext,MVC,EF7和存储库模式(这里不是问题,我不认为)......

我遇到的问题是,当对数据库发出多个请求时,我收到以下错误:"已经有一个与此命令关联的打开的DataReader必须先关闭."

这是一些代码:

public class Startup
{
    public IConfiguration Configuration { get; set; }

    public Startup(IHostingEnvironment env)
    {
        Configuration = new Configuration().AddJsonFile("config.json").AddEnvironmentVariables();
    }

    public void ConfigureServices(IServiceCollection services)
    {
        services.AddMvc();

        // Register Entity Framework
        services.AddEntityFramework(Configuration)
            .AddSqlServer()
            .AddDbContext<MyDbContext>();

        services.AddSingleton<ILocationRepo, LocationRepo>();
        services.AddSingleton<IStateRepo, StateRepo>();
    }

    public void Configure(IApplicationBuilder app)
    {
        app.UseMvc();

        var testData = ActivatorUtilities.CreateInstance<TestData>(app.ApplicationServices);
        testData.InitializeData();
    }
}
Run Code Online (Sandbox Code Playgroud)

控制器:

[Route("api/[controller]")]
public class LocationsController : Controller
{
    private readonly ILocationRepo _repo;

    public LocationsController(ILocationRepo repo)
    {
        _repo = repo;
    }

    // GET: api/locations
    [HttpGet]
    public …
Run Code Online (Sandbox Code Playgroud)

dependency-injection repository-pattern asp.net-core-mvc asp.net-core

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

如何在ASP.NET 5 beta6中插入自定义RazorViewEngine

在之前的beta4和beta5中,我能够使用以下代码插入自定义RazorViewEngine:

services.AddMvc().Configure<MvcOptions>(options =>
{
    options.ViewEngines.Clear();
    options.ViewEngines.Add(typeof(MyViewEngine));
});
Run Code Online (Sandbox Code Playgroud)

但是在升级到beta6之后,现在它说MvcOptions上没有ViewEngines

我尝试通过DI添加它,就像这样:

services.TryAdd(ServiceDescriptor.Transient<IRazorViewEngine, MyViewEngine>());
Run Code Online (Sandbox Code Playgroud)

但没有运气.有谁知道实现这一目标的新方法是什么?

asp.net-core-mvc asp.net-core

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

针对VS 2015中新MVC6项目的运行时间

我在Windows 7上使用ASP.NET beta 7,VS 2015.

当我在面向.NET 4.6框架的VS2015中创建一个新的MVC6项目时,我的项目引用如下所示:

DNX 4.5.1
DNX Core 5.0
Run Code Online (Sandbox Code Playgroud)

我不希望为跨平台创建,并希望我的引用看起来像这样(来自其他教程):

ASP.NET 5.0
ASP.NET Core 5.0
Run Code Online (Sandbox Code Playgroud)

从ASP.NET 5.0文档:

在此输入图像描述

我在VS 2015中看到的内容(dnx没有复选框选项):

在此输入图像描述

我应该手动破解project.json文件吗?

"frameworks": {
    "dnx451": { },
    "dnxcore50": { }
  },
Run Code Online (Sandbox Code Playgroud)

asp.net visual-studio asp.net-core-mvc visual-studio-2015 asp.net-core

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

如何让JQuery-UI与ASP.NET MVC6一起使用?

我刚刚开始使用MVC6(RC),已经创建了一个基于MVC6 RC标准模板的项目,并拼命尝试使JQuery-UI工作.我在我的一个视图中从JQuery-UI页面中取代了以下示例:

<script>
    $(function() {
        var availableTags = [
            "ActionScript",
            "AppleScript",
            "Asp",
            "BASIC",
            "C",
            "C++",
            "Clojure",
            "COBOL",
            "ColdFusion",
            "Erlang",
            "Fortran",
            "Groovy",
            "Haskell",
            "Java",
            "JavaScript",
            "Lisp",
            "Perl",
            "PHP",
            "Python",
            "Ruby",
            "Scala",
            "Scheme"];

        $("#tags").autocomplete({
            source: availableTags
        });
    });
</script>
<div class="ui-widget">
    <label for="tags">Tags:</label>
    <input id="tags">
</div>
Run Code Online (Sandbox Code Playgroud)

显示标签(和"TextBox"),但自动完成功能不起作用(如果我输入某些文本,则没有任何反应).默认情况下安装JQuery(base)(在标准模板中).首先,我添加了JQuery-UI NuGet包(似乎是错误的).然后我在Bower中添加了JQuery-UI包(我认为应该是新的方式).

我也尝试添加引用:

<!-- jQuery UI CSS Reference -->
<link rel="stylesheet" href="//code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css">
<script src="//code.jquery.com/jquery-1.10.2.js"></script>
<script src="//code.jquery.com/ui/1.11.4/jquery-ui.js"></script>
<link rel="stylesheet" href="/resources/demos/style.css">
Run Code Online (Sandbox Code Playgroud)

在我看来(什么不解决问题).

MVC 6(RC)项目中添加JQuery-UI并使示例正常工作的正确方法是什么? 更新为concret: 问题不在于上面的示例代码(没有错误)问题只是引用JQuery正确(在我的情况下为MVC6 RC). 因此,您可以在第一个答案中看到解决方案,特别是针对我的案例 - 在我自己的答案中.

jquery jquery-ui asp.net-core-mvc visual-studio-2015

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

在ASP.NET MVC6 EF中实现[授权]

是否可以在MVC6中实现[授权]过滤器。无论我尝试什么,都会收到错误消息:

找不到名称空间“ Authorize”的类型(您是否缺少using指令或程序集引用?)

我试图使用一堆命名空间,但是它们不存在或无效。

我真的很坚持这一点(并且通常使用过滤器),所以任何帮助将不胜感激!

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

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

"'prepublish'脚本失败,状态码为34"

我可以在Debug和Release模式下成功构建和运行我的项目.

但是,当我想发布到服务器共享文件夹或只是本地文件夹时,我在控制台中收到以下错误.

"'prepublish'脚本失败,状态码为34"

我正在使用Visual Studio 2015更新1. ASP.NET 5 RC 1 Update 1

这是我的发布选项

在此输入图像描述

32位和64位选项都会产生相同的错误

web-deployment asp.net-core-mvc visual-studio-2015 asp.net-core

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

具有ASP.NET核心库的Docker容器

每次我用ASP.NET Core应用程序构建Dockerfile时,都会从web Nuget商店下载程序集.

基本上我想用所有这些ASP.NET核心库(可能还有一些我经常使用的库)创建docker镜像.

根据我的理解,我试图重塑GAC.

所以,我的问题是可以使用像GAC这样的ASP.NET Core吗?或者,我的第二个想法,将ASP.NET核心库下载到容器,然后以某种方式在本地解析它.

我的目标是减少构建docker容器的时间.

UPDATE

看起来这是不可能的

.net docker asp.net-core-mvc .net-core asp.net-core

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

从类库(.NET Core)引用ASP.NET核心Web应用程序(.NET核心)

我试图从类库项目(.NET Core)添加对ASP.NET Core Web Application的引用,这将是我的Unit Tests项目.

我在默认的空项目中遇到错误(文件 - >新项目): 在此输入图像描述

我试图将测试项目降级到1.4但没有成功.

asp.net-core-mvc asp.net-core

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

登录后导致使用oidc和浏览器后退按钮的带有azure广告的netcore

因此,我有一个新创建的netcore应用程序,它通过中间件设置链接到我的azure Active Directory帐户,如下所示:

       app.UseCookieAuthentication(new CookieAuthenticationOptions()
        {
            AutomaticAuthenticate = true,
            AutomaticChallenge = true                
        });

        app.UseOpenIdConnectAuthentication(new OpenIdConnectOptions
        {
            AutomaticAuthenticate = true,
            AutomaticChallenge = true, 
            ClientId = Configuration["Authentication:AzureAd:ClientId"],
            Authority = Configuration["Authentication:AzureAd:AADInstance"] + Configuration["Authentication:AzureAd:TenantId"],
            CallbackPath = Configuration["Authentication:AzureAd:CallbackPath"],                                 
            Events = new OpenIdConnectEvents
            {
                OnAuthenticationFailed = OnAuthenticationFailed,
                OnAuthorizationCodeReceived = OnAuthorizationCodeReceived                                           
            }
        });
Run Code Online (Sandbox Code Playgroud)

我的回调路径默认为“ CallbackPath”:“ / signin-oidc”,我在URL上的天蓝色符号为http:// localhost:20352 / ,回复URL为http:// localhost:20352 / signin-oidc

现在,我可以正常进行登录过程了,但是如果您按几次浏览器后退按钮,我将被炸死:

处理请求时发生未处理的异常。

例外:关联失败。位置不明

AggregateException:未处理的远程故障。(关联失败。)Microsoft.AspNetCore.Authentication.RemoteAuthenticationHandler`1.d__5.MoveNext()

如何或在何处捕获此异常以进行相应处理?或导致此问题的中间件设置有问题。

上面的两个事件从未发生过。

编辑:可能有助于了解来自浏览器后退按钮的爆炸URL是“ http:// localhost:20352 / signin-oidc

这显然不存在为有效的控制器/动作路线

c# azure-active-directory asp.net-core-mvc openid-connect

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