Tag: asp.net mvc

为什么等待不会出现阻止EF上下文的第二次操作

在ASP.NET MVC应用程序中,我收到了一个使用我的Entity Framework上下文的控制器方法的以下错误消息。 在先前的异步操作完成之前,在该上下文上开始第二个操作。 使用’await’确保在此上下文上调用另一个方法之前已完成任何异步操作。 任何实例成员都不保证是线程安全的。 我知道你不能并行运行查询,所有东西似乎都在等待。 如果我调试程序并逐步检查从EF返回的一些数据,那么它可以工作,可能是因为这会强制查询完成。 编辑如果我在控制器方法的空检查中放置一个断点并检查shipmentDetail的数据,则不会抛出exception。 这是代码的一部分: 控制器方法 : [Route(“{id:int}/Deliveries”)] public async Task DeliveryInfo(int id) { var shipmentDetail = await db.ShipmentDetails.SingleOrDefaultAsync(s => s.Id == id); if (shipmentDetail == null) return HttpNotFound(string.Format(“No shipment detail found with id {0}”, id)); var model = await DeliveryInfoModel.CreateModel(db, shipmentDetail); return View(“DeliveryInfo”, model); } CreateModel方法 : public static […]

如何使用mvc 6,asp.net 5注册全局filter

我正在尝试在简单的mvc应用程序中注册filter。 我甚至没有在基本filter之外编写任何东西来测试。 我正在使用VS 2015 RC,我通过转到新项目 – > Asp.net Web应用程序 – > Web API创建了初始应用程序。 我遇到的问题是我无法找到一种全局注册filter的方法。 从早期版本的MVC我看到GlobalFilters.Filters ,但是当我尝试在新框架中使用它时,它告诉我无法找到GlobalFilters。 在以前的版本中,它存在于System.Web.MVC中,但我不再在我的引用中看到它,我似乎无法在任何地方找到它。 这看起来应该很简单,但到目前为止我还没有找到办法。 这是我的project.json { “webroot”: “wwwroot”, “version”: “1.0.0-*”, “dependencies”: { “Microsoft.AspNet.Mvc”: “6.0.0-beta4”, “Microsoft.AspNet.Server.IIS”: “1.0.0-beta4”, “Microsoft.AspNet.Server.WebListener”: “1.0.0-beta4”, “Microsoft.AspNet.StaticFiles”: “1.0.0-beta4” }, “commands”: { “web”: “Microsoft.AspNet.Hosting –server Microsoft.AspNet.Server.WebListener –server.urls http://localhost:5000” }, “frameworks”: { “dnx451”: { “frameworkAssemblies”: { } }, “dnxcore50”: { } […]

在类库中包含视图

在之前的一个问题中,我发现了如何为MVC创建插件架构。 我不是那条道路上的那条路,但我确实有一种很好的分裂方式。 但是,有一件事让我感到烦恼的是,当它们在类库中时,它就是视图的智能化。 在核心MVC项目中开发它们然后将它们复制到一起是一件痛苦的事。 基本上我遇到的问题是我不太了解Visual Studio如何处理aspx文件。 我现在正处于测试阶段,我想我可以利用RC1附带的显式视图构建。 任何帮助,将不胜感激。 更新: 我知道在实际运行时整理出的所有视图,在Visual Studio中编辑它们我感兴趣。它们是否必须在Web类型项目中?

使用LDAP连接到Active Directory的连接字符串

我的系统管理员给了我这个: 域名:capp.net USER:capp \ dhr2 通过:admin @ 12345 连接字符串是什么? 我对adfs非常新。 所以我试过这个: 我总是收到此错误:无法与服务器建立安全连接 我对连接字符串做错了。 我只是不知道如何解决它。

ASP.NET MVC模型绑定到列表中

在我的ASP.NET MVC站点中,function的一部分允许用户输入某个场所打开时的小时数。 我决定将这些小时存储在我的数据库中的VenueHours表中,与Venues表的FK-PK关系,以及DayOfWeek,OpeningTime和ClosingTime参数。 在我的视图中,我想让用户只输入他们所知道的时间; 换句话说,有些日子可能没有为场地填写。 我正在考虑创建一个复选框,用户可以检查该复选框以启用复选框所属的DayOfWeek的OpeningTime和ClosingTime字段。 我的问题涉及如何将此信息传递给我的HttpPost控制器操作 。 我知道可以传递的最大天数(7),我当然可以在我的Action中编写7个可以为空的VenueHour参数,但我确信有更好的方法。 我可以以某种方式将视图信息绑定到传递给我的Action的List吗? 如果我遇到用户可以填写的信息数量没有限制的情况,这也将对我有所帮助。

从ASP.NET WebForms迁移到MVC

我已经阅读了很多问题和文章,说明从ASP.NET Webforms转换到MVC几乎是不可能的。 不过我认为我的情况有所不同。 我大约一年前在Webforms中愚蠢地开始创建一个项目,但我采用的方法(据我所知)非常像MVC。 我已禁用表单validation,不使用任何回发,使用URL重写,所有页面更改都是加载ContentPlaceHolders页面内容的AJAX请求(使用小型hack,覆盖RenderControl方法)。 我还在网站中引用的单独项目中使用了我自己的ORM和RESTful Service API。 现在系统运行良好,页面部分刷新正常,并且在进行ajax调用时更改了url,因此当页面刷新时,它看起来完全相同。 现在我刚刚被告知我需要为一个新的大项目学习MVC(但我必须先完成另一个项目),但我已经完成了一些关于这个主题的阅读,并启动了一些Hello World应用程序,它似乎ASP.NET MVC的想法几乎就是我已经创建的。 StackOverflow仍然建议不要将Webforms应用程序转换为MVC吗? 除了最佳实践之外,转换到MVC还有其他好处吗?

ASP.NET MVC中的动态路由操作名称

我想创建一个到以下URL的动态路由: http://localhost:51577/Item/AnyActionName/Id 请注意,控制器名称是静态的,不需要是动态的。 另一方面,我需要动作名称部分是动态的,这样无论写入URL的那一部分,我都会将用户重定向到Item控制器内的Index动作。 到目前为止我尝试的是: public static void RegisterRoutes(RouteCollection routes) { routes.MapRoute( “Items”, “Item/{action}/{id}”, new { controller = “Item”, action = “Index”, id = UrlParameter.Optional }); } 当我构建我的应用程序时,我收到以下错误: 无法找到该资源。 编辑 : 这是我的Global.asax文件和routeconfig.cs文件: public class MvcApplication : System.Web.HttpApplication { protected void Application_Start() { AreaRegistration.RegisterAllAreas(); FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); RouteConfig.RegisterRoutes(RouteTable.Routes); BundleConfig.RegisterBundles(BundleTable.Bundles); } } 这是RouteConfig.cs文件的内容,其中RouteConfig.cs @Nkosi提供的答案: public class RouteConfig { public […]

c#JSON序列化使用值而不是属性名称

我正在开发一个JSON驱动的项目,我想为SessionManager对象提供一个动态的权限列表。 虽然我可以使用一组键值对进行权限,但我想知道是否可以删除属性名称,以便键是Permission值, 值是IsAllowed值。 public class SessionPermission { public string Permission { get; set; } public bool IsAllowed { get; set; } } public class SessionManager { public string UserName { get; set; } public string Password { get; set; } public List Permissions { get; set; } public void SetPermissions() { Permissions = new List […]

传递到字典中的模型项的类型为’System.Data.Entity.Infrastructure.DbQuery’,但此字典需要B类型的模型项

我一直陷入困境,我试图在网上找到它的解决方案,但没有成功。 我是使用Entity Framework的MVC的新手,当我尝试运行应用程序时抛出exception: 传递到字典中的模型项的类型为’System.Data.Entity.Infrastructure.DbQuery 1[f__AnonymousType1 2 [UnRelatedEntity.Models.t_AbortReason,UnRelatedEntity.Models.t_Activity]]’,但此字典需要模型项输入’UnRelatedEntity.Models.MobilePhoneXchangeEntities1′ 我使用一个实体作为一个模型,它从两个表中分别获取数据,这两个表之间没有关系。 控制器: public ActionResult Index() { MobilePhoneXchangeEntities1 ent = new MobilePhoneXchangeEntities1(); var result = from foo in ent.t_AbortReason from bar in ent.t_Activity where foo.AbortReasonCategoryId != null && bar.ActivityId != null select new { Foo = foo, Bar = bar }; return View(result); } 视图 @model UnRelatedEntity.Models.MobilePhoneXchangeEntities1 在视图中我只是写上面的行我的意思是我只是inheritance模型,没有其他但我仍然对如何键入演员模型wrt模型感到困惑,但我很无奈。 任何人都可以请我帮忙,但请记住我在我的模型中使用两个不相关的表。

在ASP.Net MVC中路由之前的数据库选择

我正在寻找asp.net mvc 4中的一种方法,在任何路由发生之前从web.config中选择数据库设置,比如在codeigniter(php)中预先路由挂钩。 保存那些设置会话或上下文对象的最佳方法是什么? PS我是asp.net mvc的新手。 像这里提到的php代码: 在每个路由运行之前运行数据库查询