Tag: asp.net mvc 5

带集合的模型 – Html.ListBoxFor不设置所选项

这个让我发疯,在我失去理智之前,请帮忙。 问题摘要:我的模型“Thread”有“ForumMessage”集合,每个ForumMessage都有一个Multi select下拉列表。 我想要做的就是根据来自数据库的值设置所选值。 我已经通过很multithreading,但无法找到解决方案。 如果您知道任何此类问题,请告诉我,我会通过他们。 以下是我的模特 public class Thread { public List Messages { get; set; } //Master list coming from DB public List AllClassifications { get; set; } public string Subject { get; set; } public int[] ThreadSelectedClassifications { get; set; } } public class ForumMessage { public string MessageName { get; set; […]

ASP.NET MVC:在程序集中找不到上下文类型

这是我的第一个asp.net mvc项目。 我使用EF代码第一种方法并创建了一个单独的类库来编写我的模型和上下文。 我还在mvc项目中引用了类库。 但是,当我尝试启用迁移时,在创建了更多新模型之后,它给了我一个错误。 我还尝试了这里提到的所有可能的解决方案: 在程序集中找不到上下文类型。 ASP.NET MVC4 问题仍然存在。 我错过了什么吗? 这是Context Class的代码: using System; using System.Collections.Generic; using System.Data.Entity; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Data.Entity.ModelConfiguration.Conventions; using FYPPharmAssistant.Domain.Models; namespace FYPPharmAssistant.Domain.DAL { public class MyContext : DbContext { public MyContext() : base(“MyConnectionString”) { } public DbSet GenericNames { get; set; } public DbSet Items { […]

用户角色/授权在ASP.NET标识中不起作用

在我们的DbContext.cs上有这个(模型构建器)代码 base.OnModelCreating(modelBuilder); modelBuilder.Entity().HasKey(l => l.UserId); modelBuilder.Entity().HasKey(r => r.Id); modelBuilder.Entity().HasKey(r => new { r.RoleId, r.UserId }); modelBuilder.Entity().ToTable(“ApplicationUser”); 除授权/用户角色外,一切正常。 检查完所有表后,我注意到IdentityUserRoles表创建了4列: RoleId,UserId,IdentityRole_Id和ApplicationUser_Id。 我发现, IdentityRole_Id和ApplicationUser_Id [外键]被映射或使用,而不是RoleId和UserId [主键]。 不幸的是,身份(Id)数据被插入到RoleId / UserId列中,IdenityRole_Id / ApplicationUser_Id默认为NULL 。 请帮忙。 我的代码: public class RqDbContext : DbContext { private const string ConnectionString = “RqDbContext”; public RqDbContext() : base(ConnectionString) { } public static RqDbContext Create() { return […]

如何在C#中将两个数组作为键和值互相放置?

我在ASP.Net MVC中有一个表单,其中联系人可以是一个或多个 例如:一个项目可以有一个或多个联系人。 我创建了我的表单,它有一个带有两个文本框的div,比如打击: Focal Points Add More Focal Points Name: Phone 当我发布表单时,如何将联系人姓名和电话数组作为单个数组的键和值。 动态生成文本框的脚本: $(document).ready(function () { var max_fields = 10; //maximum input boxes allowed var wrapper = $(“.input_fields_wrap”); //Fields wrapper var add_button = $(“.add_field_button”); //Add button ID var x = 1; //initlal text box count $(add_button).click(function (e) { //on add input button click e.preventDefault(); […]

AsP.Net MVC 5如何在视图中调用函数

我有ASP.Net MVC 5应用程序我想从视图中调用一个方法我该怎么办? 我的代码: 我的UsersListfunction: public ActionResult UsersList() { var User_VM = new UserVM { MyUsers = context.Users.OrderBy(u => u.Email).Include(u => u.Roles).ToList() }; return View(User_VM); } UsersList查看: @foreach(var user in Model.MyUsers) { @user.Email @foreach(var r in user.Roles) { @Html.Action(GetRoleNameById(r.RoleId)) } } 和我在控制器中的function: public ActionResult GetRoleNameById(string RoleId) { var RoleName = context.Roles.Where(r => r.Id == RoleId).FirstOrDefault(); […]

MVC中的十进制符号问题,C#?

我正在使用MVC 5.0 我在config中设置了文化: 我有一个模型如下: public class MyModel { [DisplayName(“NbatPersent”)] [Range(0, 100)] public double NbatPersent{ get; set; } } MVC在视图中显示NbatPersent值,如22/5 ,当我想提交表单时,表单validation器提醒我The field NbatPersent must be a number. 。 它无法将22/5转换为22.5 如果我输入22.5就可以了,但如果属性有一个转换的值. 到/ 如何将所有数字属性的文化转换为en-US以显示22.5类的值,而不是22/5 。 编辑: 我正在使用@Html.TextBoxFor来显示decimal属性,因为用户应该更改它。

ASP.NET MVC:在应用程序启动时检查数据库连接

1-有时我的SQL Server因维护而停机,所以当我尝试运行我的ASP.NET MVC应用程序时,我面对黄色错误屏幕, network-related or instance-specific error occurred while establishing a connection to SQL Server.时出现network-related or instance-specific error occurred while establishing a connection to SQL Server.错误network-related or instance-specific error occurred while establishing a connection to SQL Server. 由于我不知道ASP.NET MVC中的事件序列,我想知道应该在哪里检查连接,因此我可以将用户重定向到一个视图,通知他/她这种情况(而不是显示此错误页面)。 我在asp.net论坛上看到了这个答案 ,但我无法理解如何在global.asax处理这个问题。 2-是否可以对每个数据库连接错误进行一些更改,我可以将用户重定向到该信息页面? 我的意思是可以为数据库连接错误定义全局exception处理程序吗? PS我在web.config中的connectionString被命名为DefaultConnection 。

调用异步方法时使用.Wait()的情况是什么

我的asp.net mvc-5 Web应用程序中有以下async长时间运行方法: – public async Task ScanAsync(string FQDN) { // sample of the operation i am doing var c = await context.SingleOrDefaultAsync(a=>a.id == 1); var list = await context.Employees.ToListAsync(); await context.SaveChangesAsync(); //etc.. } 我正在使用支持运行后台作业的Hangfire工具来及时调用此异步方法,但不幸的是,hangefire工具不支持直接调用异步方法。 所以为了克服这个问题,我创建了上述方法的同步版本,如下: – public void Scan() { ScanAsync(“test”).Wait(); } 然后从HangFire调度程序我调用sync方法如下: – RecurringJob.AddOrUpdate(() => ss.Scan(), Cron.Minutely); 所以我知道使用.Wait()将主要在方法执行期间占用iis线程,但正如我所提到的,我需要这样做,因为我无法在hangefire调度程序中直接调用异步TASK。 那么当我使用.Wait()调用异步方法时会发生什么?整个方法的操作是否会以同步方式完成? 例如,如上所示,我在ScanAsync()有三个异步操作; SingleOrDefualtAsync , ToListAsync和SaveChangesAsync […]

MVC5 Autofac:找不到的视图

我创建了非常简单的MVC 5.0应用程序,我推送到GitHub存储库: https : //github.com/marxin/mvc-sample 。 我的动机是使用mono 3.2.3在Linux上执行app。 我想添加Autofac NuGet包(更确切地说是3.3.0),这对我来说很好。 问题是,如果我添加Autofac.Mvc5集成包,Razor将停止处理以下错误: System.InvalidOperationException The view found at ‘~/Views/Home/Index.cshtml’ was not created. Description: HTTP 500.Error processing request. Details: Non-web exception. Exception origin (name of application or object): System.Web.Mvc. Exception stack trace: at System.Web.Mvc.BuildManagerCompiledView.Render (System.Web.Mvc.ViewContext viewContext, System.IO.TextWriter writer) [0x00000] in :0 at System.Web.Mvc.ViewResultBase.ExecuteResult (System.Web.Mvc.ControllerContext context) [0x00000] in :0 […]

为什么在HttpRequest结束后第二次创建了owin中间件

根据为什么来自Asp.Net Identity的ApplicationDbContext被创建并按照请求处理两次的问题后,我做了一些研究,为什么会发生这种情况。 我发现每个HttpRequest创建一次ApplicationDbContext但是当使用Owin管道时,将在HttpRequest结束后第二次创建Owin Middleware。 因此,当用户单击一个链接时,确实会第二次创建ApplicationDbContext从而给出每个WebRequest创建对象两次的印象。 经过大量的研究,我决定在不使用任何身份validation的情况下启动一个简单的MVC 5项目。 从NuGet添加Owin中间件后,我创建了以下Owin Middleware组件。 这基本上检查HttpContext字典中是否存在一些假对象,如果不存在则创建一个伪对象。 输出将写入调试窗口以使事情变得简单。 [assembly: OwinStartupAttribute(typeof(MvcPlain.Startup))] namespace MvcPlain { public class Startup { public static int Counter; public static string FakeKeyName; public void Configuration(IAppBuilder app) { app.Use(async (context, next) => { Debug.WriteLine(“Owin middleware entered => begin request”); FakeKeyName = “owinKey” + Counter.ToString(); var fakeKeyPresent = HttpContext.Current.Items.Contains(FakeKeyName); Debug.WriteLine(string.Format(“{0} key […]