完成后台任务队列后重定向到行动
我正在研究一个.NET核心解决方案,该解决方案从另一个微服务中备份存储文件,并且由于此过程需要太长,因此我们决定在背景任务下构建此例程.通过此链接: https:https://学习. microsoft.com/en-us/aspnet/core/fundamentals/host/hosted-services?view=ASPNETCORE-2.1 我通过使用以下排队的背景任务实现了背景: public interface IBackgroundTaskQueue { void QueueBackgroundWorkItem(Func workItem); Task> DequeueAsync( CancellationToken cancellationToken); }
12 2024-04-26
编程技术问答社区
如何在ASP.NET Core 2 MVC中通过依赖性注入设置单元测试的模型验证?
我正在构建ASP.NET Core 2 MVC应用程序.很多时候,我需要利用依赖项来验证用户输入.我希望我的验证方法可以进行单位测试,并且我希望能够将模拟的依赖项注入其中.这是我以前在MVC5中所做的事情,取得了巨大的成功,但无法确定ASP.NET Core 2等效. 这就是我在MVC5中这样做的方式: // the view model to be validated public class MyViewModel { public string Username { get; set; } } // the model validator that will have dependencies injected into it public class MyViewModelValidator : ModelValidator { private IUserService users; private MyViewModel model; publi
12 2024-04-26
编程技术问答社区
用ASP.NET MVC Core 1.0配置Nunit
我想为我的ASP.NET Core 1.0项目配置Nunit.我尝试以下内容: http:http://http://.Alteridem.net/2015/11/04/testing-net-core-using-using-nunit-3/ ,但它是用于控制台应用程序的. 如果我尝试将一个新项目(类库)附加到我的解决方案,然后尝试引用我的原始项目 - 它给了我参考错误. 这对我有用: 我将另一个专门用于编写测试的Web应用程序附加到我的原始项目,而不是控制台库项目. 然后我下载了:" dotnet-test-nunit"," nunit"," nunit.console"和" nunit.runners". 然后我写了一项测试,该测试在将此行添加到Project.json:"testRunner": "nunit" 之后 这是我的测试项目中的project.json文件: ` { "dependencies": { "Micro
16 2024-04-26
编程技术问答社区
如何访问T4文本模板中的发布信息?
您如何访问发布信息以供在T4文本模板中使用? 例如,我想创建一个文本模板,该模板生成XML文件,该文件将使用ASP.NET Core MVC网站发布.生成的文件应取决于我发布网站的位置;生产或测试环境.因此,我会在.tt文件中有类似的东西,这样,当生成时,它会因所选的发布配置文件或发布路径而变化: : text output specific to A text output specific to B 编辑: 我刚刚找到了这个,看起来很有希望: 解决方案 this 我不必在.csproj文件的开头添加任何内容,因为VS2017的文件默认已包含. 在Visual Studio 2017中,文本模板转换组件是 自动安装作为Visual Studio扩展的一部分 DevLopment工作量.您也可以从个人安装它
10 2024-04-26
编程技术问答社区
BindAttribute在ASP.Net MVC Core (2.0.8)中似乎不起作用。
我正在尝试使用绑定属性以在模型中仅包含特定属性.我知道我可以使用视图模型,并且只指定所需的属性,但是我不能使用它,因为代码必须通过一些静态代码分析来运行,如果不存在绑定属性,该代码会触发错误,而我可以' t更改该规则(它不是由我控制的). 这是我尝试的. 模型: [Bind("One")] public class SomeModel { public int One { get; set; } public int Two { get; set; } } 控制器方法: [HttpPost("foo")] [Consumes("application/json")] public IActionResult Foo([FromBody] SomeModel model) { return Json(model); } 我在帖子中发送的内容: { "One": 1, "Two": 2 } 回应我得到了:
8 2024-04-26
编程技术问答社区
下拉列表没有从3个独立的参考表格中填充数据
目前,我正在使用EF7使用ASP.NET MVC 6.我正在使用默认控制器生成器.由于某种原因,即使存在数据,我的下拉跌倒也没有在创建或编辑页面上填充数据. 只是为了澄清3个选择列表,由3个不同的表填充,这些表都连接到我要添加的主表. 这是我得到的. 控制器代码 private readonly SchoolContext _context; public SchoolsController(SchoolContext context) { _context = context; } public IActionResult Create() { ViewData["DistrictId"] = new SelectList(_context.Districts, "DistrictId", "District"); ViewData["LocationId"] = new SelectList(_context.Locations
4 2024-04-26
编程技术问答社区
在*.cshtml文件中加入@addTagHelper后,出现了错误500
当我使用 时 @addTagHelper "*, Microsoft.AspNet.Mvc.TagHelpers" 在我的.cshtml文件中,这会导致错误500. 解决方案 哪个版本?请给我们更多信息. 如果您使用的是RC1-UPDATE1使用 @addtaghelper *,microsoft.aspnet.mvc.taghelpers 其他解决方案 我有同样的问题,无法确切原因.但是,将我的JSON文件中的" Microsoft.aspnet.mvc.taghelpers"更改为" 6.0.0-betax"到" 6.0.0.0-rc1-final"解决了问题.此更改后确保还原软件包. 也:如建议的@taghelper语句应转到您的_viewimports.cshtml文件.
18 2024-04-26
编程技术问答社区
从ASP.net MVC项目中下载文件的动作链接和方法
我在Visual Studio中有一个ASP.NET Core MVC项目.我已经在项目中添加了一个名为下载的文件夹,并将文件" readme.txt"添加到该文件夹​​中.我正在尝试使用户下载文件.我认为我有: @Html.ActionLink("Readme.txt", "ReadMe", "Download") 这调用了下载Controller中的读数操作.但是,过去一个小时我一直在努力编写返回文件的动作方法. 我认为这样的事情应该这样做,但是IDE无法识别服务器,我找不到解决它的导入.我已经尝试使用system.web,并且它不起作用. public FileResult ReadMe() { string filename = "ReadMe_2.1.txt"; string serverpath = Server.MapPath("~/Download/"); string filepath = serverpath + file
12 2024-04-26
编程技术问答社区
如何设计对所有用户角色的检索和处理?
我正在用ASP.NET Core 2.0 MVC构建一个Intranet.所有用户都是Active Directory的一部分.另外,我有一个带有以下表的MSSQL数据库: Users (Id, FirstName, UserNameAd (unique), ...) Roles (Id, RoleName) UserRoles (User_Id, Role_Id) 在我的Web应用程序中,我现在想检索用户的角色,并将其存储在Microsoft的身份验证/身份类中,以便使用[Authenticate(Roles="Admin")]的东西.我不确定我将在哪里放置这个角色抢断,以及什么是最好的做法.用户可能会在白天扮演新角色,或者在白天删除角色,我实际上不希望用户单击特定的内容,或者需要他重新启动浏览器以使新角色扮演新角色 - 这就是为什么我认为需要从服务器中要求每个服务器操作(帖子,get)请求角色. 任何想法或链接到良好教程都将不胜感激. 另外,如果您认为我的方法不
20 2024-04-26
编程技术问答社区
当通过Ajax向MVC控制器传递ViewModel(对象)时,如何忽略空值?
在以下view中,我将对象(ViewModel)传递给控制器​​.如果用户输入表单中的所有值,它的工作正常.通过LINQ查询生成的querystring请求的示例URL如下: Request URL:http://localhost:50507/OrdCtrl/OrdAction?OrdYear=2016&OrderNumber=CE123&OrderName=testOrder&hasOrdered=true&_=1489509308855 但是,如果用户跳过搜索表中的一个值,例如,用户会获得预期错误: NullReferenceException: Object reference not set to an instance of an object. 我认为上述错误是因为生成的请求的URL缺少orderName的参数值,如下所示: Request URL:http://localhost:50507/OrdCtrl/OrdAction?OrdYear=2
4 2024-04-26
编程技术问答社区
在Ubuntu上运行ASP.NET 5 on Mono时用MVC 6调整图像大小
如何在ASP.NET 5,MVC 6,DNX451中重新大小,并在Ubuntu上运行? 我一直无法解决这个问题,因为我使用的标准组件,例如ImageProcessor和Imageresizer.net似乎不起作用. 解决方案 我目前正在开发DNX 4.5.1(ASP.NET 5)和MVC 6中的网站,该网站旨在托管在Ubuntu Server上. 最近,我遇到了重新大小图像的问题,因此我不得不开箱即用.就我而言,不必在我的开发环境上重新大小图像,因此我专注于如何在即将到来的产品环境上处理. 解决方案是使用ImageMagick,这是Linux的非常不错的小软件. 这就是我解决的方式: if (_hostingEnvironment.IsProduction()) { var command = "-c 'convert " + filePath + " -resize 960x960 -quality 70 " + filePath
22 2024-04-26
编程技术问答社区
asp.net的核心错误。ArgumentException: Keyword not supported: 'sslmode'
我目前正在使用MySQL尝试ASP.NET核心,也是ASP.NET Core MVC的新手.我第一次尝试获取数据时,我收到以下错误 MySqlException: The host localhost does not support SSL connections. 研究后,我发现我需要在连接字符串上添加 sslmode = none ,所以我添加了它,就像 "server=127.0.0.1;database=test;uid=root;password=;SslMode=none;" 它解决了错误,但是现在,当我尝试使用ASP.NET Core的默认用户身份验证模块注册用户时,我会得到以下堆栈跟踪错误 System.Data.Common.DbConnectionOptions.ParseInternal(Dictionary parsetable, string connectionString, bool buildCha
46 2024-04-26
编程技术问答社区
如何在ASP.net core MVC中使用post方法来显示一个内容?
我是ASP.NET编程的新手,但我仍然熟悉C#和C语言.最初,我被教导如何在ASP.NET剃须刀页面上浏览.这很容易遵循.但是对于我的最后一个项目,我继续进行了ASP.NET Core MVC页面.到目前为止,这还可以,而且工作原理(工作原理是相似的),除了后端部分.在剃须刀页面中,这些页面在一起,index.cshtml和index.cshtml.cs位于一个地方,但在MVC中并非如此.我面临的困难了解如何在我的页面中使用method="post". 我的剃须刀查看页面代码: @{ ViewData["Title"] = "Lorem Ipsum Generator"; Layout = "/Views/Shared/_Layout.cshtml"; } body { /* Margin bottom by footer height */ margin-bottom: 60px;
6 2024-04-26
编程技术问答社区
JwtBearerAuthentication安全处理异常
使用JWTBEARERATHENTICATION MIDERDWARE时,在调用JWTSecurityTokenHandler.WritEtoken()之后,将RSAcryptoServiceProvider和其他对象处置在签名中.我的问题对此问题非常相似:第一个请求有效,但是任何后续请求都会失败.该功能在RC2中效果很好...但是现在我们已经升级到1.0,WritEtoken导致: System.ObjectDisposedException was unhandled by user code HResult=-2146232798 Message=Safe handle has been closed ObjectName="" Source=mscorlib StackTrace: at System.Security.Cryptography.Utils._GetKeyParameter(SafeKeyHandle hKey, UInt32 paramID) at Sys
12 2024-04-26
编程技术问答社区
EF不会更改数据库
SaveChangesAsync EF中的方法无法保存数据库的更改. var mydataout = _dbContext.MyTable .Where(a => a.MyData== context.Message.Data); if (mydataout.Any()) { foreach (var output in mydataout) { output.IsActive = false; } } var result = await _dbContext.SaveChangesAsync(); 这里SaveChangesAsync方法没有对数据库进行任何更改.我正在使用EF. 解决方案 您的代码正确.您正在使用什么版本的EF?我对EF Core 6进行了模拟. 都可以. 谢谢
10 2024-04-26
编程技术问答社区
从JsonResult中获取数据
代码在ASP.NET核心中. MVC控制器返回JSON(Somedata). 我正在尝试在单元测试中检索数据.我能做的最好的就是拥有 string data = JsonConvert.SerializeObject(jsonResult.Value); ,然后比较字符串.但是,我希望获得一个对象或数组来进行一些更具体的比较.有趣的是,在调试器下,我可以看到jsonResult.Value是类型Microsoft.EntityFrameworkCore.Query.Internal.EntityQueryable,甚至有结果视图警告不要扩展它或否则.如果我扩展它,我会得到我想要的!就我而言,它是MyType对象的4元素数组.但是,如果我做from i in jsonResult.Value select i之类的事情,我会发现错误 Could not find an implementation of the query pattern for sourc
10 2024-04-26
编程技术问答社区
根据一个条件显示主页
我有一个ASP.NET MVC应用程序,该应用程序返回一个名为"客户为主页"的页面.但是,当用户试图在假日(假日列表中存储在表中)而不是客户页面时,我需要显示一个不可用的页面.在初创公司中,我喜欢以下 app.UseEndpoints(endpoints => { endpoints.MapControllerRoute( name: "default", pattern: "{controller=Customers}/{action=Index}/{id?}"); }); 现在,我创建了一个名为appnotavialable.cshmtl的新页面,如果今天存储在假期中,则尝试返回此页面. public async Task Index(string sortOrder, strin
在ASP.Net Core Razor页面中添加Toast
我目前正在使用Razor页面构建我的第一个ASP.NET核心应用程序,在那里我试图将烤面包添加到屏幕上,何时成功地将项目添加到购物车中,这是Add to Cart链接上的单击事件.我添加了逻辑,但无法正常工作.我跟随 link 下面是index.cshtml,我在我试图展示吐司 Successfully added item to the cart ............. ..... Add to Cart ...... ......... $(document).ready(function () {
10 2024-04-26
编程技术问答社区
在使用SQL Sever会话存储时如何确定会话ID
我遵循本指南将SQL Server设置为我的会话数据商店. 我注意到会话表具有ID列.我希望我可以使用此ID列来确定使用的当前会话(在会话表中的行).但是,我不知道该ID是如何生成的,或者是如何在幕后与该ID匹配的ASP.NET Core与会话的. 我尝试使用HttpContext.Session.Id,但与数据库中的ID不同. 那么,我如何确定会话使用哪一行? 解决方案 它是随机生成的.您可以在 Middleware source if (string.IsNullOrWhiteSpace(sessionKey) || sessionKey.Length != SessionKeyLength) { // No valid cookie, new session. var guidBytes = new byte[16]; CryptoRandom.G
12 2024-04-26
编程技术问答社区
如何只使用一个连接来执行多个命令和查询?
这是完成代码链接 我只想使用NPGSQL连接执行多个查询,而不是使用多个连接如下: class TransactionAccess { private const string connString = "Host=localhost;Username=postgres;Password=1234;Database=ExpenseManagerDB"; public static void GetExpense(DateTime startDate, DateTime endDate) { using (var connection = new NpgsqlConnection(connString)) { var Expense = connection.Query(@"SELECT SUM(t.amount) as Expense
6 2024-04-26
编程技术问答社区