Tag: asp.net mvc

为ASP .NET MVC创建unit testing的问题

我正在为我的ASP .NET MVC Controller类创建一些unit testing,我遇到了一些非常奇怪的错误: 我的控制器代码如下: [HttpPost] [ValidateAntiForgeryToken] public ActionResult Delete(JournalViewModel journal) { var selectedJournal = Mapper.Map(journal); var opStatus = _journalRepository.DeleteJournal(selectedJournal); if (!opStatus.Status) throw new System.Web.Http.HttpResponseException(new HttpResponseMessage(HttpStatusCode.NotFound)); return RedirectToAction(“Index”); } 我的测试代码如下: [TestMethod] public void Delete_Journal() { // Arrange // Simulate PDF file HttpPostedFileBase mockFile = Mock.Create(); Mock.Arrange(() => mockFile.FileName).Returns(“Test.pdf”); Mock.Arrange(() => mockFile.ContentLength).Returns(255); // Create view […]

有没有办法直接获取目录结构并在C#中将其解析为Json?

我想知道是否有办法获取特定的目录结构并将其解析为json,因此我可以使用jquery插件创建客户端树视图模式。 提前致谢

连接字符串麻烦MetaDataException

我的项目中有两个模型。 当我添加第二个模型时,我在所有帐户页面中都出现了此错误: System.Data.MetadataException: The specified schema is not valid. Errors: (8.6): error 0040: the nclob type is not qualified with a namespace or alias. Only primitive types can be used without qualification. At line 34 of `InitializeSimpleMembershipAttribute.cs` : using (var context = new UsersContext()) Ligne 33 : { Ligne 34 : if (!context.Database.Exists()) Ligne 35 […]

AngularJs脚本在部署后不起作用,它会出错

我一直在构建一个Web项目,我不时尝试发布,看看它在localhost中的样子。 这一次,我添加了angularjs来获取/显示货币并再次部署项目。 但是,它会向浏览器中的用户显示{{currency}}。 Error: [$injector:unpr] http://errors.angularjs.org/1.5.8/$injector/unpr?p0=nProvider%20%3C-%20n%20%3C-%20CurrencyController 我的angularjs代码看起来像这样…… app.controller(“CurrencyController”, function ($scope, $http) { $http.get(‘http://dummy.com/api/getcurrencyformainscreen’). success(function (data, status, headers, config) { $scope.currencies = data; }). error(function (data, status, headers, config) { //alert(data); }) }); 我究竟做错了什么?

如何在IPagedlist模型中添加“模型”下拉列表?

我有一个页面来显示html表中的每个日志( 消息,时间,类型,customerId,Name )。 由于日志很大,我在Razor MVC中使用了一个IPagedList,这非常有效。 我目前有2个搜索框(对于管理员)和1个成员。 您可以在哪里搜索消息和客户ID。 现在问题是我不希望用户只有一个文本框,你只能输入一个数字(例如你输入客户ID 2并获得客户T) – 但我想要一个所有的下拉列表当前客户名称连接到客户ID。 我在我使用的另一个页面中有这个function,但它只能工作,因为我在另一个页面返回模型,因为日志页面返回“IPagedListModel”而不是“模型”我不能使用此解决方案。 我如何使此解决方案也适用于我的日志页面? HTML代码 @:@Html.DropDownListFor(m => m.SelectedCustomer, Model.CustomerList) 模型 using System; using System.Linq; using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; using System.Data.Entity; using System.Collections.Generic; using PagedList; using System.Web.Mvc; namespace ASDMVC.Models { [Table(“Log”)] public class LogModel { [Key] public long id { get; set; } public string message { […]

如何告诉Web API / Castle Windsor路由引擎在我的存储库中使用不同的数据库实例?

我使用模型,存储库和控制器的ASP.NET Web API Castle Windsorized应用程序了解事件流程: 0)客户端通过URI调用REST方法,例如: http://localhost:28642/api/platypi/Count 1)Castle Windsor的路由引擎映射拦截来电,发送实现接口platypiController的注册具体类在其构造函数中作为arg。 2)该构造函数确定要调用哪个方法(在这种情况下对应于“Count”)。 3)Controller方法调用Repository上的相应方法。 4)代码运行,数据收集和返回,用户认为这一切都很容易(一个极端观点)或神奇(另一个,稍微不那么极端,观点)。 我已经创建了一对利用它的项目,到目前为止它只是花花公子。 我们为不同的用户提供了几个数据库实例(特定客户端的DB1,另一个客户的DB2等)。这些表几乎但不完全相同(不保证保持不变),并且针对这些表的查询类似。 我的难题/挑战是如何或在何处拦截路由以这种方式或基于用户正在调用的“类”。 我想我需要N个存储库来实现每个接口,例如: interface FooBar class PhooBar : FooBar // targets DB#1 class PhooeyBar : FooBar // targets DB#2 class PoohBear : FooBar // targets DB#3 但是,我如何告诉Castle Windsor或Web API我想要的具体类/存储库? 在任何给定时间,都会有来自需要为DB#1数据提供服务的客户端的Web API / Castle Windsor应用程序,需要DB#2数据的其他客户端以及需要DB#3数据的用户的请求。 这是在URI中完成的事情,例如: http://localhost:28642/api/platypi/Count/1 (附加数字表示要使用的DB) ? 要么: http://localhost:28642/api/platypi/Count/PhooBar 要么…??? 在许多情况下,必须在一个Repository类和另一个Repository类之间进行更改的唯一事情是构造函数中的连接字符串。 […]

ASP.NET MVC控制器动作与自定义参数转换?

我想设置一个ASP.NET MVC路由,如下所示: routes.MapRoute( “Default”, // Route name “{controller}/{action}/{idl}”, // URL with parameters new { controller = “Home”, action = “Index”, idl = UrlParameter.Optional } // Parameter defaults ); 路由请求看起来像这样…… Example/GetItems/1,2,3 …到我的控制器动作: public class ExampleController : Controller { public ActionResult GetItems(List id_list) { return View(); } } 问题是,我如何设置将idl url参数从string转换为List并调用适当的控制器操作? 我在这里看到一个相关的问题 ,使用OnActionExecuting预处理字符串,但没有改变类型。 我不认为这对我ActionExecutingContext ,因为当我在我的控制器中覆盖OnActionExecuting并检查ActionExecutingContext参数时,我看到ActionParameters字典已经有一个空值的idl键 – 可能是从字符串到List …这是我想要控制的路由的一部分。 […]

Azure B2C GetOwinContext()。Authentication.Challenge使用问号而不是And符号创建错误的URL

我正在使用Azure B2C,我在https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-devquickstarts-webapp-dotnet上使用该项目作为启动指南。 我设法通过使用我的客户端ID,租户ID等替换配置条目来运行此示例。但是,当我尝试将Azure B2C身份validation添加到我当前的Web应用程序(Asp.NET MVC dot net 4.5)时,它表现得很好奇怪的方式。 当我按下登录时,它会将我重定向到与工作样本中的URL略有不同的URL。 它会在政策后用问号/授权替换和签名?p = b2c_1_signin ***?*** client_id 这是策略URL在Azure B2C门户窗口中显示的方式: https : //login.microsoftonline.com/XXX.onmicrosoft.com/oauth2/v2.0/authorize?p= B2C_1_SignIn&client_id = XXXX&nonce = defaultNonce&redirect_uri =https%3A %2F%2Flocalhost%3A44316%2F&范围=的OpenID&RESPONSE_TYPE = id_token&提示=登录 然而,这是我的应用程序奇怪地重定向到的URL:#login.microsoftonline.com/XXX.onmicrosoft.com/oauth2/v2.0/authorize?p=b2c_1_signin?client_id=XXXXX&redirect_uri=https%3a%2f%2flocalhost%3a44316 %2F&response_mode = form_post&RESPONSE_TYPE = id_token&范围=的OpenID&状态= OpenIdConnect.AuthenticationProperties%3d1dRzpEoUYWC8q6vPoGU3VtcY7wXXmMDVlkWqr8aQLvWqv64IWeGE0jUnQ6chCZBWEo55uYHsSD27R6EjKIlEaEQWdH6dgIrNDj_n234nLkHb7bKsToir8Yr8j7gbXPb7dBG00wlOufyOfXRT29owsOzjJ8WWwguWDWlo2MN3McsuIWflDKup5qCtQTUS71RBGAEbcQJ_1BqFxIUZsbTglEg4KGm-mroT0tz7PGDcRQU&随机数= 636311347285953639.YzQyOWNmYjQtNzAxOS00MTBmLTlkYzQtZGM4MjNlNjdjYThlM2ZlMWMxZGEtYWE0MS00YzY3LWFiM2MtZDgyZWNiNGUxOWQ0 我完全从工作样本中复制了代码,但它没有用。 我甚至从头开始创建了一个全新的mvc项目,我从示例项目中复制了代码,但它仍然无效。 当它重定向到该URL时,它显示404 – 未找到文件或目录。 您要查找的资源可能已被删除,名称已更改或暂时不可用。 我很确定答案是非常明显的,我会看起来非常愚蠢,但我在这里拉头发,任何输入都非常感激。

在MVC 5 Dot Net Identity中扩展IdentityUserRole后,UserManager.GetRoles不起作用

我通过添加外键列扩展了IdentityUserRole,现在我无法授权或检索角色信息。 可以请任何人帮我解决这个问题。 我的IdentityUserRole有一个来自AspNetApplications表的外键列,IdentityUserRole扩展名如下 public class AspNetUserRoles : IdentityUserRole { [Key] public string ApplicationId { get; set; } [ForeignKey(“ApplicationId”)] public AspNetApplications AspNetApplications { get; set; } } 添加迁移后,我可以看到在AspNetUserRoles表中创建了外键列。 该表的屏幕截图如下 在这里,我有两个问题要问 为什么它创建了一个自动Discriminator列以及如何删除它,如果它有任何开销。 为了让我的授权和UserManager.GetRoles在执行此扩展之前工作,我需要做多少工作。

Visual Studio Express 2013未显示Web模板

我刚刚在Windows 8.1上安装了visual studio 2013 当我去新项目时,在windows visual studio中没有显示网页模板,如网页,MVC 3,4,5和其他东西,如Windows表单应用程序和数据库。 Visual Studio只是展示手机应用程序开发模板。 为什么会这样,因为我已经安装了更新2的visual studio express,我认为它是最新的。 我尝试了很多东西,例如修复更新2并为visual studio 2013安装了其他asp.net模板,但我没有按照我的方式… 请建议我解决方案