Tag: asp.net core

在渲染局部视图时如何调用控制器操作?

我正在为侧边栏创建部分视图,以显示我网站中最受欢迎的post。 如何创建一个单独的控制器来加载局部视图所需的模型? ( IEnumerable与热门post) 目前我已经创建了一个加载流行post的控制器类,但是在渲染部分时我一直遇到错误,因为我无法调用控制器并加载部分模型。 例如,如果我从我渲染单个post的视图中调用它,则模型类型将不匹配( Post vs IEnumerable ) 这是我的SidebarController : using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using Microsoft.AspNetCore.Mvc; using Microsoft.EntityFrameworkCore; using GoBaron.Front.Models; namespace GoBaron.Front.Controllers { public class SidebarController : Controller { private readonly ApplicationDbContext _context; public SidebarController(ApplicationDbContext context) { _context = context; } public async Task PopularPosts() { return PartialView(await _context.Posts […]

在将.NET Core控制台应用程序部署到Azure WebJobs时加载hostpolicy.dll时出错

我已按照本教程将.NET Core控制台应用程序部署到Azure Web Service WebJob。 我的应用程序在本地运行没有任何问题(使用dotnet 1.0.0-preview2-003131 )但是当我尝试从Azure控制台运行它时出现以下错误: 无法从[D:\ local \ VirtualDirectory0 \ site \ wwwroot \ app_data \ jobs \ triggered \ PopcornExportWebJob \ hostpolicy.dll]加载dll,HRESULT:0x800700C1 从[D:\ local \ VirtualDirectory0 \ site \ wwwroot \ app_data \ jobs \ triggered \ PopcornExportWebJob]加载所需的库hostpolicy.dll时发生错误 Azure dotnet的版本是1.0.0-rc4-004771 ,hostpolicy.dll文件与我在本地使用的文件相同。 事实上,当我从Azure下载部署的zip时,当我在本地运行它时,它工作正常。 但它在Azure环境中失败了。 另外,这是我的project.json: { “publishOptions”: { “include”: [ “run.cmd” ] […]

IEnumerable 在未引用的程序集中定义 – 新的NuGet类库项目

我正在使用VS2015社区,我安装了.NET 4.6.01040,并按照这些说明安装了ASP.NET 5。 我想开始将一个站点从MVC5迁移到MVC6所带来的所有其他更新,所以我开始使用包含我的Data模型的Entity Class库项目。 这是我的project.json文件的样子: { “version”: “1.0.0-*”, “description”: “test.Entities Class Library”, “authors”: [ “me” ], “tags”: [ “” ], “projectUrl”: “”, “licenseUrl”: “”, “frameworks”: { “net461”: { “dependencies”: { “System.Runtime”: “4.0.0.0” } }, “dotnet5.4”: { “dependencies”: { “Microsoft.CSharp”: “4.0.1-beta-23516”, “System.Runtime”: “4.0.21-beta-23516”, “System.Linq”: “4.0.1-beta-23516” “System.Collections”: “4.0.11-beta-23516”, “System.Threading”: “4.0.11-beta-23516” } } }, “dependencies”: { “EntityFramework.Core”: […]

如何强制Visual Studio使用x64 DNX SDK体系结构

我正在使用1.0.0-beta7 x64,但视觉工作室坚持认为我正在使用x86。 当我删除所有我的运行时,除了我定位的那个,我得到这个: 我在项目的任何地方找不到x86的引用。 当我将鼠标hover在解决方案DNX SDK版本上时,它会显示x86版本,但我不知道它是从哪里获得的。 目前这不会导致任何问题,我只是想了解发生了什么。

升级到v1.1后,ASP.NET Core将无法在IIS中运行

我已经升级了我的project.json以使用asp.net核心的新v1.1,现在当我尝试启动IIS Express进行调试时,我收到以下错误: 程序'[8784] dotnet.exe’已退出,代码为-2147450749(0x80008083)。 程序'[7352] iisexpress.exe’已退出,代码为0(0x0)。 我升级的project.json: “dependencies”: { “Microsoft.NETCore.App”: { “version”: “1.1.0”, “type”: “platform” }, “Microsoft.ApplicationInsights.AspNetCore”: “1.0.0”, “Microsoft.AspNetCore.Mvc”: “1.1.0”, “Microsoft.AspNetCore.Routing”: “1.1.0”, “Microsoft.AspNetCore.Server.IISIntegration”: “1.1.0”, “Microsoft.AspNetCore.Server.Kestrel”: “1.1.0”, “Microsoft.Extensions.Configuration.EnvironmentVariables”: “1.1.0”, “Microsoft.Extensions.Configuration.FileExtensions”: “1.1.0”, “Microsoft.Extensions.Configuration.Json”: “1.1.0”, “Microsoft.Extensions.Logging”: “1.1.0”, “Microsoft.Extensions.Logging.Console”: “1.1.0”, “Microsoft.Extensions.Logging.Debug”: “1.1.0”, “Microsoft.Extensions.Options.ConfigurationExtensions”: “1.1.0”, “Microsoft.IdentityModel.Tokens”: “5.1.0”, “Microsoft.AspNetCore.Authentication”: “1.1.0”, “Microsoft.AspNetCore.Authentication.JwtBearer”: “1.1.0”, “Microsoft.AspNetCore.Authentication.Cookies”: “1.1.0”, “Microsoft.AspNetCore.Identity.EntityFrameworkCore”: “1.1.0”, “Microsoft.EntityFrameworkCore”: “1.1.0”, “Microsoft.EntityFrameworkCore.Tools”: “1.0.0-preview2-final”, “SapientGuardian.EntityFrameworkCore.MySql”: […]

Asp.net 5 web api返回状态码和正文

我正在使用ASP.NET 5开发一个项目,我正在编写一个web api。 我inheritance了一些代码和数据库存储过程,使用raiserror来指示错误(用户名/密码不正确,许可证过期等)。 除消息文本外,存储过程不返回任何内容以唯一标识该错误。 我希望能够返回HTTP UNAUTHORIZED响应,但也将错误消息传递给客户端。 内置的IActionResult HttpUnauthorized()方法不允许给出理由。 所以我编写了自己的ActionResult,如下所示: public class UnauthorizedWithMessageResult : IActionResult { private readonly string _message; public UnauthorizedWithMessageResult(string message) { _message = message; } public async Task ExecuteResultAsync(ActionContext context) { using (var sw = new HttpResponseStreamWriter(context.HttpContext.Response.Body, Encoding.UTF8)) { await sw.WriteLineAsync(_message); } await new HttpUnauthorizedResult().ExecuteResultAsync(context); } } 问题是,客户端正在接收200-OK,就像一切都很好。 我已经完成了这个步骤,在完成HttpUnauthorizedResult的委托之后,状态代码确实设置为403。 看起来Web API(在某些时候)看到响应正文中的内容并确定这意味着一切正常并重置状态代码。 有没有办法解决这个问题,而不必诉诸于作为标题或其他东西发送消息? […]

如何在ASP.NET Core中设置启动路由

我的ASP.NET核心应用启动路由设置为: /api/values 我想将此启动路由更改为: / 通过文档查看有很多关于路由约束的规范,但我不确定我是否看到如何设置在启动时运行的路由… 它在启动时调用错误的控制器。 如果我删除控制器(ValueController),我得到一个404.它指定在运行时使用此控制器在哪里? 我在隐藏的launchSettings.json中看到了希望但是正在编辑 http://localhost:5000/api/value 至 http://localhost:5000/ 没有帮助

(http)coreclr / dnxCore中的Web请求提供程序?

是否有可用于在coreclr执行Web请求/基本GET下载的提供coreclr ? ( .net core ) System.Net.Webclient和HttpWebRequest/HttpWebResponse都不可用,我意识到它的目的是提供内容而不是消费,但基本的字符串下载似乎真的应该被包含在内? 我忘记了什么,或者只是直接不可能? 我可以默认为完整的dnx,但实际上不会丢失并失去跨平台兼容性。

ASP.NET Core API Controller:Response.Body.WriteAsync base64字符串无法正常工作

我正在尝试从API控制器返回表示jpeg图像的base64字符串,并将其设置为的src,但我的所有尝试都失败了。 这是非常简单的HTML: 而我的控制器: [Route(“api/[controller]”)] public class TestBase64ImageController : Controller { private const string _base64Image = “data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEBLAEsAAD/7Sfg…..”; private const string _base64Image2 = “/9j/4AAQSkZJRgABAQEBLAEsAAD/7Sfg….. [HttpGet] public async Task Get() { Response.ContentType = “image/jpeg”; //Response.ContentType = “text/plain”; //Response.ContentType = new MediaTypeHeaderValue(“image/jpeg”).ToString(); //Response.ContentType = new MediaTypeHeaderValue(“text/plain”).ToString(); //Response.Headers.Add(“Content-Length”, _base64Image.Length.ToString()); //HttpContext.Response.ContentLength = _base64Image.Length; await Response.Body.WriteAsync(Encoding.UTF8.GetBytes(_base64Image), 0, _base64Image.Length); //await Response.Body.FlushAsync(); } } […]

基于ASP.NET核心自定义策略的授权 – 不清楚

好的,ASP.NET核心中基于自定义策略的授权。 我有点理解这个新的身份框架的想法,但仍然没有100%清楚你可以用这个来实现。 假设我们在HomeController中有一个名为List的Action。 此操作将查询并显示数据库中的产品列表。 必须访问此列表的用户必须是Marketing部门的一部分。 因此,在我们的政策中,我们检查用户是否有一个名为Division的声明,其值是Marketing。 如果是,那么他将被允许查看列表,否则不会。 我们可以像这样装饰我们的动作: [Authorize(Policy = “ProductsAccess”)] public IActionResult List() { //do query and return the products view model return View(); } 一切都很好。 它会很完美。 场景1:如果我想在产品级别添加策略,并且根据策略,用户将只看到其部门的产品,该怎么办? 所以营销人员会看到他的产品,研发人员会看到他的等等。 我怎样才能做到这一点? 是否可以通过政策完成? 如果有,怎么样? 场景2:在现场级访问怎么样? 让我们说也许我想隐藏某些字段? 示例:所有产品都有某些必须对Managers可见且对其他用户隐藏的列? 可以使用自定义策略完成吗? 如果有,怎么样?