Tag: asp.net mvc 4

动态扩展应用程序的function?

我最近遇到了一种在使用ASP.NET MVC3 / 4时开发可插拔应用程序模块的方法,我喜欢这种方法的简单性。 目前,我的应用程序结构如下: 因此,任何想要为我的应用程序开发扩展的人都遵循上述教程中的方法,并创建一个保留在Areas文件夹中的扩展。 我想,当添加新Areas (创建为新项目)时,会创建.pdb文件并将其放在bin目录中。 我的问题是: 如何将Areas分配为可插拔模块? 如何更改以下代码,以便当有人将新Area放入bin文件夹时,应用程序会自动选择它并创建链接? 插件作者应该怎么做才能启用它? 在我的_Layout.cshtml (全局共享布局)中,我执行以下操作来构建链接: @Html.ActionLink(“Area1”, “Index”, “Area1”, new { Area = “Area1” }, null) @Html.ActionLink(“Area2”, “Index”, “Area2”, new { Area = “Area2” }, null) @Html.ActionLink(“Area3”, “Index”, “Area3”, new { Area = “Area3” }, null) 为简单起见,假设区域名称是唯一的。 有关如何做到这一点的任何建议?

entity framework5代码优先不创建数据库

我正在尝试使用Entity Framework的代码优先概念创建一个新数据库。 但是,在运行代码时,不会创建数据库(使用DropCreateDatabaseIfModelChanges设置),尽管代码运行正常。 当我尝试从数据库中获取内容时,我看到以下exception。 我的项目使用单独的DataAccess层进行设置,该层具有通用服务和存储库构造。 因此,我的所有实体,存储库和数据库上下文都在解决方案中的单独项目中。 我的global.asax文件包含以下代码。 Database.SetInitializer(new DropCreateDatabaseIfModelChanges()); 这应该初始化一个新的数据库,如果它不存在,对吧? 我的数据库上下文类看起来像这样; namespace Website.DAL.Model { public class MyContext : DbContext { public IDbSet Projects { get; set; } public IDbSet Portfolios { get; set; } /// /// The constructor, we provide the connectionstring to be used to it’s base class. /// public MyContext() : base(“MyConnectionString”) { […]

来自数据库的MVC模型validation

我有一个非常简单的模型,需要从数据库中进行validation public class UserAddress { public string CityCode {get;set;} } CityCode可以具有仅在我的数据库表中可用的值。 我知道我可以做点什么。 [HttpPost] public ActionResult Address(UserAddress model) { var connection = ; // create connection var cityRepository = new CityRepository(connection); if (!cityRepository.IsValidCityCode(model.CityCode)) { // Added Model error } } 这似乎非常WET因为我必须在很多放置时使用这个模型并且添加相同的逻辑,每个地方似乎我没有正确使用MVC架构。 那么,从数据库validation模型的最佳模式是什么? 注意:大多数validation是从数据库进行单字段查找,其他validation可能包括字段组合。 但是现在我对单场查找validation很满意,只要它是DRY并且没有使用过多的reflection就可以接受。 没有客户端validation: 对于在客户端validation方面回答的任何人,我不需要任何此类validation,我的大多数validation都是服务器端的,我需要相同的,请不要回答客户端validation方法。 PS如果任何人可以给我提示如何从数据库进行基于属性的validation,将会非常有用。

ASP.NET MVC Razor部分和部分

我是ASP.NET MVC和Razor的新手。 我们一直在修改和开发基于现有代码。 因此,有很多重复(呃!)。 所以我开始查看部分页面并了解章节。 我按照这些教程,但我仍然有点困惑。 ASP.NET MVC 3:使用Razor进行布局和部分 在ASP.NET MVC中使用共享布局的各种方法 具有默认内容的可选剃刀部分 剃刀,嵌套布局和重新定义的部分 我已经能够在其中创建带有部分的部分。 我的问题是: 虽然一个部分将始终根据用户选择而改变,但我可能不想吹走内容部分。 我可能只想根据用户选择的子菜单项添加新选项卡。 计划是有一个包含_Header的_Layout和SideBar的一个Section (子菜单)。 根据用户在_Header中的选择,子菜单选项列表将在SideBar中更改, 内容将是一个容器,可以在选择主页按钮时包含网格 ,或者它可以包含其他按钮的选项卡视图。 问题 假设用户从_Header中选择Billing ,然后从左侧的Sub Menu中选择两个项目; 在“内容”部分中,应显示两个选项卡(一个用于子菜单中选择的每个项目)。 然后,如果用户从_Header中选择Reports , SideBar应该更改为显示Reports的相应子菜单项,但我不希望Billing的两个选项卡被吹走。 相反,我想为用户从Reports子菜单中选择的每个项目添加其他选项卡。 下面是演示中的代码,它显示了我如何将部分页面代码放在Sections中。 显然我仍然对我应该采取的方法感到困惑,以完成我需要的布局。 _Layout.cshtml @ViewBag.Title @Styles.Render(“~/Content/css”) @Scripts.Render(“~/bundles/modernizr”) @Scripts.Render(“~/Scripts/jquery-1.10.2.min.js”) My Site Header @if (IsSectionDefined(“SideBar”)) { @RenderSection(“SideBar”) } @RenderBody() Site Footer – © Santa Clause Index.cshtml @{ […]

我无法从表中填充DropDownList。 EF和MVC4

我相信这会在我的HomeController中创建一个列表。 但不确定是什么调用它或它在Controller旁边的位置可能是第一个Add ActionResult(GET方法)。 public static IEnumerable items() { using (oesacEntities_compact db = new oesacEntities_compact()) { var query = from s in db.tblSponsors select new { s.SponsorID, s.BizName }; return query.AsEnumerable() .Select(x => new SelectListItem { Value=x.SponsorID.ToString(), Text = x.BizName }).ToList(); } } 我似乎无法将其发送到添加视图或从添加视图引用它: @Html.DropDownListFor(model => model.SponsorID,IEnumerable SelectList); 在其他编码语言中似乎很简单。 我想填充一个下载大约有200个赞助商ID的下拉值,BizNames用于文本。 至少现在。 当我想要显示具有所选值的编辑视图时,上帝帮助我。 谢谢你的stackoverflow

如何获取EF 5中所有实体的列表?

我正在构建一个MVC 4应用程序。 我有一个下拉列表,需要显示所有使用的表(实体).. 我怎样才能做到这一点? 我首先使用EF 5代码配置。 任何帮助,将不胜感激。 谢谢

上传的Docx文件已损坏

我们的一个内部网站允许用户上传文档并将文件存储到SQL 2008数据库中。 我们遇到的问题是,当您尝试打开它们时,docx总是说已损坏。 单击确定后,他们然后继续打开罚款。 我做错了什么? (所有其他文件类型保存正常,包括.doc) 上传代码: // save the files string mimeType = Request.Files[i].ContentType; string filePath = Path.GetFileName(Request.Files[i].FileName); string fileName = Path.GetFileName(Request.Files[i].FileName); Stream fileStream = Request.Files[i].InputStream; long fileLength = Request.Files[i].InputStream.Length; if (fileLength > 0) { byte[] fileData = new byte[fileLength]; fileStream.Read(fileData, 0, (int)fileLength); _fileRepo.SaveFileToDatabase(_currentUser.Username, t.EncounterId, fileName, filePath, mimeType, fileData); } 将其插入数据库的代码 tblDocumentImage img = […]

在调用“WebSecurity”类的任何其他方法之前,必须调用“WebSecurity.InitializeDatabaseConnection”方法

每次我用Visual Studio重新启动Debugging时,我都会遇到这个怪异的错误: 在调用“WebSecurity”类的任何其他方法之前,必须调用“WebSecurity.InitializeDatabaseConnection”方法。 此调用应放在站点根目录中的_AppStart.cshtml文件中。 但这是每次,当我将应用程序部署到prod时。 我随后在这里得到了这个错误。 我把正确的标签: [Authorize(Roles = “admin”)] [InitializeSimpleMembership] public class IndexController : Controller 到控制器,这是filter的方式。 它只是不想工作。 using System; using System.Data.Entity; using System.Data.Entity.Infrastructure; using System.Threading; using System.Web.Mvc; using MeetingTaskManagement.Models; using WebMatrix.WebData; namespace MeetingTaskManagement.Filters { [AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, AllowMultiple = false, Inherited = true)] public sealed class InitializeSimpleMembershipAttribute : ActionFilterAttribute { private static SimpleMembershipInitializer _initializer; […]

在asp.net mvc 4 razor中访问Custom Html Helpers中的属性

我在ASP.NET MVC 4 razor视图引擎C#中创建了HtmlHelper。 我可以将视图模型属性传递给我的帮助程序类吗? 例如,我有财产 [Required] [Display(Name = “Your Lastname”)] public string Lastname { get; set; } 我可以将此属性传递给我的帮助程序,如@Html.Example(model => model.Lastname) ,然后在帮助程序中获取数据注释(如果需要此字段,则显示名称等等)?

制作级联下拉列表(ASP.NET MVC)

我有公司和职位空缺表。 公司有多个职位空缺。 我需要制作两个下拉列表。 其中一个是公司,当我选择它时,会有与该公司有关的职位空缺。 这是公司的模型 public Company() { this.Clients = new HashSet(); this.Vacancies = new HashSet(); } [Key] public int CompanyID { get; set; } public string CompanyName { get; set; } public string Id { get; set; } public virtual AspNetUser AspNetUser { get; set; } [System.Diagnostics.CodeAnalysis.SuppressMessage(“Microsoft.Usage”, “CA2227:CollectionPropertiesShouldBeReadOnly”)] public virtual ICollection Clients { get; […]