Tag: asp.net mvc 5.1

使用MVC5,Ajax,C#和MSSQL Server级联DropdownList

来自Windows窗体和3层架构的MVC我很陌生。 我试图找出使用从数据库填充的级联下拉列表(DDL)。 我正在使用MS SQL Server 2012,VS 2013 目前我正在处理用户问卷,用户可以从DDL的多个答案中进行选择。 取决于一些选择,我需要在下一个问题上更改答案(再次DDL)。 数据库: 表DDLStacks : StackId | StackName 1 | Berry 2 | BerryColor 3 …. 表DDLStackContents (SCId堆栈内容id,索引目的) SCId | StackId | GroupId | Key | Value ————————————– 1 | 1 | Null | 1 | Grape 2 | 1 | Null | 2 | Avocado 3 | […]

为什么在ASP.Net Core中获取IMemoryCache的多个实例?

我认为我的ASP.NET核心应用程序中的IMemoryCache的标准用法。 在startup.cs我有: services.AddMemoryCache(); 在我的控制器中,我有: private IMemoryCache memoryCache; public RoleService(IMemoryCache memoryCache) { this.memoryCache = memoryCache; } 然而,当我进行调试时,我最终得到了多个内存缓存,每个缓存中包含不同的项目。 我以为内存缓存会是单例吗? 更新了代码示例: public List GetFunctionRoles() { var cacheKey = “RolesList”; var functionRoles = this.memoryCache.Get(cacheKey) as List; if (functionRoles == null) { functionRoles = this.functionRoleDAL.ListData(orgId); this.memoryCache.Set(cacheKey, functionRoles, new MemoryCacheEntryOptions().SetAbsoluteExpiration(TimeSpan.FromDays(1))); } } 如果我在两个不同的浏览器中运行两个客户端,当我点击第二行时,我可以看到this.memoryCache包含不同的条目。

如何在基本的MVC5.1网站中正确注册AutoFac?

AutoFac最近已针对MVC 5.1进行了更新,但在撰写本文时,我发现缺少文档(特别是对于一个简单的示例)。 我想将依赖项注入MVC​​控制器并注册我自己的实现,例如电子邮件(实际发送与打印到输出窗口)作为基本示例。 我不知道我是否遗漏了一个很好的资源,我有点担心,因为它使用OWIN规范,实现可能与MVC5.1不同(ASP.NET身份使用OWIN并且使用了一些特殊属性正确实例化OWIN)所以需要检查我是否正确。 我有一个使用以下设置代码的工作示例 – 对于标准MVC5.1 Web应用程序,这是正确和良好的做法吗? 额外问题:我是否需要将InstancePerHttpRequest添加到RegisterControllers行? 即builder.RegisterControllers(typeof(MvcApplication).Assembly).InstancePerHttpRequest(); (注意:我在Autofac上看到GitHub上的示例,但找不到适合MVC5.1的简单示例。) public static void RegisterDependencies() { // Register MVC-related dependencies var builder = new ContainerBuilder(); builder.RegisterControllers(typeof(MvcApplication).Assembly); builder.RegisterModelBinders(typeof(MvcApplication).Assembly); builder.RegisterModule(); // Register e-mail service builder.RegisterType().As().InstancePerHttpRequest(); builder.RegisterModelBinderProvider(); // Set the MVC dependency resolver to use Autofac var container = builder.Build(); DependencyResolver.SetResolver(new AutofacDependencyResolver(container)); } 而我的控制器: public class HomeController : […]

用于列表项的Asp.net razor文本框数组

我无法找到或弄清楚如何获取物品清单(纸杯蛋糕)并用数量字段显示在razor中。 发生的事情是我无法获得列表中每个蛋糕数量的值。 你能在Razor中做文本框数组吗? 视图 Cupcakes @foreach (var cupcake in Model.CupcakeList) { @Html.TextBox(“CupcakeQuantities”, cupcake.Id) @cupcake.Name } 模型 public List CupcakeList { get; set; } public List CupcakeQuantities { get; set; } CONTROLLER public ActionResult Create() { var model = new PartyBookingModel() { CupcakeList = db.Cupcakes.ToList(), CupcakeQuantities = new List() }; return View(model); } CUPCAKE(ENTITY) public class […]

在ASP .NET MVC应用程序中使用UserManager的Seed方法期间没有创建用户

当Seed方法运行时,记录/对象将添加到我的数据库中。 每个对象都应该添加,直到我尝试将用户添加到我的应用程序(在Seed方法的底部)。 没有人加入。 此外,还有很多SQLexception发布在底部。 即使Seed方法为空,它们也会被抛出。 如何将用户添加到Entity Framework托管数据库? 我按照Scott Allen的教程创建了我的代码。 protected override void Seed(WebApplication2.Models.ApplicationDbContext context) { System.Diagnostics.Debug.WriteLine(“Seed started”);//IT WORKS if (!context.Persons.Any()) { var persons = new List { new Person{FirstName = “John”, LastName = “Doe”, CellNumber = “123-456-789”, SecondaryPhoneNumber = “98873213”, Address = “1street 2”,BirthDate = DateTime.Now.Date, Pesel = “312312312”, Notes = “Annoying”}, new Person{FirstName = […]

Identity 2.0由管理员重置密码

如何将密码重置为其他用户的管理员? 我尝试过使用下面的代码 var code = await UserManager.GeneratePasswordResetTokenAsync(user.Id); var result = await UserManager.ResetPasswordAsync(user.Id, code, vm.NewPassword); 当单步执行GeneratePasswordResetTokenAsync时,将调用控制器的dispose方法。 有人可以赐教吗?

在ASP .NET MVC 5.1 / HTML 5中显示DateTime选择器而不是日期选择器

我在ASP .NET MVC 5.1中编写应用程序 我有一个领域: [DisplayName(“Date of Birth”)] [DataType(DataType.Date)] public DateTime BirthDate { get; set; } 然后在视图中 @Html.LabelFor(model => model.BirthDate, htmlAttributes: new { @class = “control-label col-md-2” }) @Html.EditorFor(model => model.BirthDate, new { htmlAttributes = new { @class = “form-control” } }) @Html.ValidationMessageFor(model => model.BirthDate, “”, new { @class = “text-danger” }) 转换为: 如果我只是将模型中的属性上面的注释更改为: [DisplayName(“Date […]

迁移同步开发和生产数据库

我正在使用MVC 5和.NET Framework 4.5.1。 代码优先。 我也在使用SQL 2012服务器和(localdb)\ v11.0进行迁移。 我正在使用C#和MVC5开发项目。 在开发过程中,我在我的开发计算机中创建了许多新表,并更改了一个“名称”字段,我相信系统会为其编制索引。 我添加了它并删除了几次。 之后,我添加了很多新的无关表,但出于某种原因,由于“名称”字段的索引,我的迁移开始给我外部约束错误。 当我修复它们时,这些错误不断增加,因此,我决定在迁移中恢复到初始状态,并使用当前位置作为新的起点重置。 我希望生产表能够在开发db中查看这个新的起点,并将其自身重新定义为开发状态。 我认为我已经读过某个地方,生产数据库将自己与开发数据库匹配并自行更新。 我相信生产数据库中有一个迁移文件,它与开发数据库中的文件相匹配 – 该文件明显不同步。 我考虑过删除其中的数据,但我一直在等待,直到得到建议。 无论如何,我在Dev计算机中更改了迁移目录的名称,并将其从项目中排除。 然后我在开发计算机上重新初始化我的表(在我的本地数据库中使用新的数据库名称),并使用初始化数据重新加载它。 一切都奏效了。 现在,我遇到了一个新问题,我的生产数据库和我的开发数据库是不同的,我在开发计算机中的迁移设置为创建新文件,而生产状态中的迁移期望更早的迁移。 每次我尝试使用开发计算机更新生产数据库时,我都会收到文件存在的错误 – 当然他们这样做了。 所以,我在迁移文件中注释掉了所有创建文件并重新尝试了。 现在,生产数据库将启动,但不会运行,因为更新的代码具有它所指的新字段,而这些字段未在生产数据库中创建。 因此,在我的生产数据库中,我开始收到所有缺失字段的错误。 我试图使自动迁移成为现实,但是没有用。 我猜,解决这个问题的唯一方法是手动进行逐个同步。 问题1:是否有一种自动同步(使用迁移)生产数据库和开发数据库的方法,以便它们与开发数据库相同? 问题2:考虑到上述情况,还有什么更好的方法可以用生产数据库重新设置迁移?