Tag: asp.net mvc 4

EditorFor / CheckBoxFor boolean将data-val-required属性添加到HTML,而不将必需属性添加到模型中

我的模型类有一个没有Required属性的bool属性: public class Test { public bool TestBool1 { get; set; } } 然后在我的剃刀视图中我使用EditorFor(同样的事情也发生在CheckBoxFor上): @Html.LabelFor(m => m.TestBool1) @Html.EditorFor(m => m.TestBool1) 这导致以下HTML: TestBool1 data-val-required html属性来自哪里? 有没有办法阻止它这样做而不使用@Html.CheckBox(“TestBool1”, Model.TestBool1)并将类型设置为bool? ?

MVC4 – 如何从剃刀视图调用控制器方法

我是MVC的新手,有人可以帮助我并解释如何从视图中调用控制器方法。 我有HomeController,里面有方法ShowFileContent()。 [HttpPost] public ActionResult ShowFileContent() { string filepath = Server.MapPath(“\\Files\\Columns.txt”); try { var lines = System.IO.File.ReadAllLines(filepath); foreach (var line in lines) { ViewBag.FileContent += line + “\n”; } } catch (Exception exc) { ViewBag.FileContent = “File not found”; } return View(); } 在内部视图中我试图用下面的代码调用此方法,但它不起作用。 @using (Html.BeginForm(“ShowFileContent”, “Home”)) { } @Html.Raw(ViewBag.FileContent.Replace(“\n”, “”)) 我收到错误:找不到视图’ShowFileContent’或其主人,或者没有视图引擎支持搜索的位置。 我做错了什么,从剃刀视图调用方法的最佳方法是什么?

控制器function上方的自定义属性

我想将[FirstTime]属性置于控制器函数之上,然后创建一个FirstTimeAttribute ,它具有一些逻辑,用于检查用户是否输入了他的名字,如果没有, /Home/FirstTime其重定向到/Home/FirstTime 。 所以不要做: public ActionResult Index() { // Some major logic here if (…) return RedirectToAction(“FirstTime”, “Home”); return View(); } 我会这样做: [FirstTime] public ActionResult Index() { return View(); } 这可能吗?

为什么mdf文件没有出现在App_Data文件夹中?

我正在尝试开始使用Beginning ASP.NET MVC 4。 并立即遇到问题,根据电子书我应该能够启动一个新的mvc 4互联网应用程序,调试并选择登录forms的UI模板,然后停止。 这应该在App_Data文件夹中创建mdf文件。 我应该能够在服务器资源管理器中单击并打开它。 实际发生了什么 – 数据库是在我的SQL Express中创建的。 正确执行此步骤对于完成本教程的其余部分至关重要。 我熟悉MVC,但主要是前端的东西,所以我试图增加对MVC数据库/模型方面的理解。 这是一个全新的项目,没有进行任何更改,只是开箱即用的代码。 在Windows XP计算机上,使用Visual Studio 2010。 Connectionstring – 任何人都可以解释 – 为什么我开箱即用的连接字符串是在SQL Express中创建Db以及如何在书中建议的App_Data文件夹中创建mdf。 干杯。

获取类的完全限定名称?

全部,我有一个log4net实现,我正在尝试使用AdoNetAppender ,但appender配置的子元素之一是connectionType ,它需要一个完全限定的类名,如System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 (以文档为例)。 但是,它无法加载那个,因为这是一个.NET4 MVC应用程序。 有人可以告诉我如何获得完全限定的名称,以便加载类型并连接到数据库? 我已经尝试了所有我能够诚实地想到的东西。

为什么即使我在每个可能的点关闭它之后我的代码都在进行延迟加载?

我想让具有UserTest实体的Exams和Test实体具有等于“0”的UserId或提供的值。 我有很多建议,但到目前为止还没有任何建议。 一个建议是从获取UserTest数据开始,另一个解决方案是从获取考试数据开始。 这是我使用UserTests作为源起点时所拥有的。 我有以下LINQ: var userTests = _uow.UserTests .GetAll() .Include(t => t.Test) .Include(t => t.Test.Exam) .Where(t => t.UserId == “0” || t.UserId == userId) .ToList(); 当我用调试器检查_uow.UserTests时它是一个存储库,当我检查dbcontext的configuration.lazyloading它被设置为false 。 这是我的课程: public class Exam { public int ExamId { get; set; } public int SubjectId { get; set; } public string Name { get; set; } public […]

如何从HttpInputStream获取docx文件的字节数组?

我正在使用本文第一个答案中的方法: 如何从HttpPostedFile创建字节数组,但由于某种原因它不适用于.docx文件。 //viewmodel.File is HttpPostedFileBase byte[] fileData; using (var binaryReader = new BinaryReader(viewModel.File.InputStream)) { fileData = binaryReader.ReadBytes(viewModel.File.ContentLength); } 在.docx文件上fileData显示为{byte[0]} ,但它适用于pdfs,excel文件(xlsx),2007之前的word文件(doc)和图像(即值大于零)。 保存到数据库,fileData为0x 。 如何从HttpInputStream获取docx文件的字节数组? UPDATE 我的web.config配置了 这适用于大于4MB的xslx文件,但小于80KB的docx文件不适用。 更新2 我可以使用此处说明的方法获取fileData: http : //msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.fileupload.postedfile.aspx byte[] fileData = new byte[viewModel.File.ContentLength]; viewModel.File.InputStream.Read(fileData, 0, viewModel.File.ContentLength); 但是,如果我将该字节数组保存到数据库并尝试写入文件,则会严重损坏。 在这种情况下保存到数据库看起来像0x00000000000000000000000… 更新3 这是整个控制器方法,虽然我不认为看到整个事情是必要的: [HttpPost] public ActionResult SaveChangeFile(AttachmentFormViewModel viewModel) { if (viewModel.File == null) return Json(new […]

woff字体实时服务器上的MIME类型错误

我有一个asp.net MVC 4网站,我正在使用woff字体。 在VS IIS上运行时一切正常。 但是,当我将头文上传到1and1主机(实时服务器)时,我得到以下内容: NetworkError:404 Not Found – http://www.com/Content/font/fontawesome-webfont.woff?v=3.2.1 当我在我的web.config中包含它时(正如一些建议)我的Web应用程序完全停止工作并无限期加载。 我究竟做错了什么?

为什么WebApi控制器操作后没有人处理DbContext?

我知道各种教程以及针对具有WebApi控制器的WebApi和Entity Framework (甚至来自Microsoft)的完整示例,如下所示: public HttpResponseMessage GetInternet(int id) { var context = new InternetDbContext(); var result = (from internet in context.Internets where internet.Id.Equals(id) select internet).FirstOrDefault(); if(result != null) Request.CreateResponse(HttpStatusCode.OK, result); } 但是,当我在2年前学习Entity Framework ,我发现的关于框架的每一个资源都指出了在最短的可能生命周期中 DbContex是多么重要,例如使用’ using ‘。 而现在,人们似乎并没有放弃处理任何东西(他们的经理,存储库,DI容器……)。 我在这里错过了什么吗? API调用的结尾是否会自动处理上下文? 或者我必须使用来自http://msdn.microsoft.com/en-us/library/dn153859(v=vs.118).aspx的 HttpRequestMessageExtensions.RegisterForDispose()类的东西?

ASP.NET MVC:以编程方式在静态内容上设置HTTP标头

我有一个ASP.NET应用程序,在RegisterGlobalFilters中连接了一个filter,它执行以下操作: public class XFrameOptionsAttribute : ActionFilterAttribute { public override void OnResultExecuting(System.Web.Mvc.ResultExecutingContext filterContext) { filterContext.HttpContext.Response.AddHeader(“X-FRAME-OPTIONS”, “SAMEORIGIN”); } } 查看Fiddler,我可以看到从Web服务器返回的视图包含此标题。 但是,静态文件(例如JavaScript)不会在HTTP响应中包含此标头。 如何让ASP.NET MVC也将此filter应用于Web服务器返回的任何静态文件?