我有一个ASP.NET MVC操作返回一个JSON对象。 JSON: {status: "1", message:"", output:"<div class="c1"><div class="c2">User generated text, so can be anything</div></div>"} 目前我的HTML正在打破它。 在输出字段中将会有用户生成的文本,所以我必须确保我转义所有需要转义的东西。 有人列出了我需要逃避的所有事情吗? 我没有使用任何JSON库,只是build立自己的string。
情景 我有一个应用程序,我们采取了旧的查询stringURL结构: ?x=1&y=2&z=3&a=4&b=5&c=6 并将其改为path结构: /x/1/y/2/z/3/a/4/b/5/c/6 我们正在使用ASP.NET MVC和(自然)ASP.NET路由。 问题 问题是我们的参数是dynamic的,并且(理论上)我们需要适应的参数数量是没有限制的。 直到我们被下列火车撞到,这一切都很好: HTTP错误400.0 – 错误的请求ASP.NET检测到URL中的无效字符。 当我们的URL超过一定的长度时,IIS会抛出这个错误。 Nitty砂砾 以下是我们发现的: 这不是一个IIS问题 IIS确实有一个最大path长度限制,但上面的错误不是这个。 了解点iis点networking如何使用请求过滤部分“基于请求限制的filter” 如果IIS的path太长,则会抛出404.14,而不是400.0。 此外,IIS最大path(和查询)的长度是可configuration的: <requestLimits maxAllowedContentLength="30000000" maxUrl="260" maxQueryString="25" /> 这是一个ASP.NET问题 经过一番探讨: IIS论坛主题:ASP.NET 2.0的最大URL长度? http://forums.iis.net/t/1105360.aspx 事实certificate,这是一个ASP.NET(好,.NET真的)问题。 问题的核心在于,据我所知,ASP.NET无法处理超过260个字符的path。 在棺材里的钉子,这是由菲尔哈克本人证实: 堆栈溢出ASP.NET URL MAX_PATH限制问题ID 265251 问题 那么问题是什么? 问题是,这个限制有多大? 对于我的应用程序,这是一个交易杀手。 对于大多数应用程序,这可能是一个没有问题的。 怎么披露? 没有提到ASP.NET路由的地方,我听说过这个限制的窥视。 ASP.NET MVC使用ASP.NET路由的事实使得这个影响更大。 你怎么看?
在我的应用程序中,我经常需要使用相对path。 例如,当我引用JQuery时,我通常这样做: <script type="text/javascript" src="../Scripts/jquery-1.2.6.js"></script> 现在我正在向MVC过渡,我需要考虑页面可能具有的相对于根的不同path。 这当然是过去的URL重写问题,但我设法通过使用一致的path来解决它。 我知道标准的解决scheme是使用绝对path,如: <script type="text/javascript" src="/Scripts/jquery-1.2.6.js"></script> 但是在开发周期中,这对我不起作用,我不得不部署到应用程序将运行在虚拟目录中的testing机器上。 当根改变时,根相对path不起作用。 另外,出于维护的原因,我不能简单地在部署testing期间更换所有path – 这本身就是一个噩梦。 那么最好的解决scheme是什么? 编辑: 由于这个问题仍然在收到意见和答案,我认为更新它可能是谨慎的,注意到,从Razor V2开始,支持根目录相关的url被烧入,所以你可以使用 <img src="~/Content/MyImage.jpg"> 没有任何服务器端的语法,并且视图引擎自动replace〜/不pipe当前网站的根目录是什么。
我有iTextSharp的这个演示代码 Document document = new Document(); try { PdfWriter.GetInstance(document, new FileStream("Chap0101.pdf", FileMode.Create)); document.Open(); document.Add(new Paragraph("Hello World")); } catch (DocumentException de) { Console.Error.WriteLine(de.Message); } catch (IOException ioe) { Console.Error.WriteLine(ioe.Message); } document.Close(); 如何让控制器将pdf文档返回给浏览器? 编辑: 运行此代码确实打开Acrobat,但出现错误消息“文件已损坏,无法修复” public FileStreamResult pdf() { MemoryStream m = new MemoryStream(); Document document = new Document(); PdfWriter.GetInstance(document, m); document.Open(); document.Add(new Paragraph("Hello World")); document.Add(new Paragraph(DateTime.Now.ToString())); […]
什么是最好的地方(哪个文件夹等)把视图特定的JavaScript文件在ASP.NET MVC应用程序? 为了保持我的项目组织,我真的很喜欢能够把它们放在视图的.aspx文件,但我没有find一个好的方法来引用他们,而不会暴露的〜/视图/动作/文件夹结构。 让这个文件夹结构的细节泄漏真的是一件坏事吗? 另一种方法是将它们放在〜/ Scripts或〜/ Content文件夹中,但是这是一个小问题,因为现在我不得不担心文件名冲突。 如果这是“正确的事情”,我可以克服这种烦恼。
我的新的ASP.NET MVC Web应用程序在我的开发工作站上工作,但不能在我的Web服务器上运行… “/”应用程序中的服务器错误。 configuration错误 说明:处理为请求提供服务所需的configuration文件时发生错误。 请查看下面的具体错误细节,并适当修改您的configuration文件。 parsing器错误消息:无法加载文件或程序集“System.Web.Mvc,版本= 1.0.0.0,文化=中性,PublicKeyToken = 31bf3856ad364e35”或其依赖项之一。 该系统找不到指定的文件。 源错误: Line 44: <add assembly="System.Web.Abstractions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> Line 45: <add assembly="System.Web.Routing, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> Line 46: <add assembly="System.Web.Mvc, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> Line 47: <add assembly="System.Data.DataSetExtensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/> Line 48: <add assembly="System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/> 源文件: C:\ inetpub \ www.example.org \ web.config […]
我有一个创build操作,需要一个实体对象和一个HttpPostedFileBase图像。 该图像不属于实体模型。 我可以将实体对象保存在数据库和磁盘中的文件,但我不知道如何validation这些业务规则: 图像是必需的 内容types必须是“image / png” 不得超过1MB
我有这样简单的ASP.NET MVC操作: public ActionResult Edit(EditPostViewModel data) { } EditPostViewModel具有这样的validation属性: [Display(Name = "…", Description = "…")] [StringLength(100, MinimumLength = 3, ErrorMessage = "…")] [Required()] public string Title { get; set; } 在视图中,我使用以下帮助程序: @Html.LabelFor(Model => Model.EditPostViewModel.Title, true) @Html.TextBoxFor(Model => Model.EditPostViewModel.Title, new { @class = "tb1", @Style = "width:400px;" }) 如果我在窗体上进行提交,那么这个文本框被放置在一个validation中将首先在客户端上完成,然后在服务( ModelState.IsValid )上完成。 现在我有几个问题: 可以用jQuery ajax提交吗? 我正在做的只是删除表单,并点击提交buttonJavaScript将收集数据,然后运行$.ajax 。 […]
什么是你的方式传递数据主页(使用ASP.NET MVC),而不会违反MVC规则? 我个人更喜欢编写抽象的控制器(基本控制器)或传递给所有视图的基类。
我在button点击添加jQuery的表行: $("#add_row").click(function () { zeile++; $("#ArtikelTabelle > tbody").append('<tr id="reihe' + zeile + '">' + '<td rowspan="2"><b>' + (zeile + 1) + '</b></td>' + '<td><input class="form-control" id="ccTabelle_' + zeile + '__ccArtikelNr" name="ccTabelle[' + zeile + '].ccArtikelNr" type="text" /></td>' + '<td><input class="form-control" id="ccTabelle_' + zeile + '__ccWarentarifNr" name="ccTabelle[' + zeile + '].ccWarentarifNr" type="text" /></td>' + '<td><input class="form-control" […]