随笔分类 - asp.net
the note of asp.net
ASP.NET MVC4 请不要将你的Control命名为APIController
摘要:今天小猪就遇到了这个坑,虽然小猪知道MVC4已经默认提供了APIController类,这样如果某Control继承自这个APIController的话会使用其自带的REST服务等等,但是之前小猪想我自己写API接口不继承自APIController类,只继承普通的Controller类是不是没有问题呢。在MVC3当中确实是没有问题,但是到了MVC4的话如果你定义APIController控制器的...
阅读全文
Entity Framework – (复数)Plural and (单数)Singular 表名Table names
摘要:By default, the Entity Framework will assume that all of the names of your tables in your database are either pluralised(复数形式的), or in the case of code first, you would like them to be pluralised when...
阅读全文
Server.UrlEncode()方法 空格转换成了+而非%20
摘要:在ASP.NET MVC 的Control类里提供了该方法。该方法可以很方便的对字符串进行url编码,但小猪今天却发现其将空格编码后变成了“+”而非JavaScript采用的encodeURIComponent()编码之后的%20。也许这算一个bug也许也不算。仔细想想在我们的url中确实不会存在空格,但是文件系统的命名却是可以使用空格的(Program Files),所以必须将空格转码。那为什么在.Net下回转换成+而在js中会是%20呢?关键问题是在encode成+之后再decode却不能转换成了空格了呀。这确实是个蛋疼的问题。引用了老外的一段描述:引用:As far as I know,
阅读全文
ASP.NET MVC统一异常处理
摘要:前言:今早看了篇文章:求知成瘾,却无作品 的思考;很有感触,发现原来自己也是这样,对每样东西都抱有很大的兴趣或者希望自己去学,一年后发现原来自己什么都是皮毛什么都不精!最终发现真正的大牛都是在某一个领域的大牛,不会是全能的。所以是时候精一下了。本篇文章来源于今天的另外一篇阅读:《我的软件没bug》作者希望读者写的程序即使已经上线也能快速的发现自己bug而不是等着用户忍无可忍时的反馈,这样让用户产生错觉是其用的软件并没有bug,而能实现这些最关键的一点就是能不能发现bug。所以小猪今天写了其实已经关注非常久的一个主题:统一的异常处理实现ASP.NET MVC提供了很方便的实现处理异常的机制:在需
阅读全文
在ASP.NET MVC中使用Area
摘要:前言:这段时间小猪花了不少功夫在研究ASP.NET MVC的源码上面,可谓思想是了解了不少,用的上用不上却是另外一回事了。!应用场景:ASP.NET MVC中,是依靠某些文件夹以及类的固定命名规则去组织model实体层,views视图层和控制层的。如果是大规模的应用程序,经常会由不同功能的模块组成,而每个功能模块都由MVC中的三层所构成,因此,随着应用程序规模的增大,如何组织这些不同功能模块中的MVC三层的目录结构,有时对开发者来说显得是种负担。另一个问题就是Controller不允許有相同命名的存在,偏偏模块中常有父子关系,有时子模块命名相同就会造成错误。幸运的是,ASP.NET MVC允许
阅读全文
在ASP.NET MVC中使用CKEditor和CkFinder
摘要:在你需要使用editor控件的页面头部添加: ... 在页面相应位置上添加:注意:js代码一定要写在textarea后 其实可以这样理解editor控件只是对textarea做了一个漂亮的包装,我们的输入其实都在上面的texarea中,最终也是通过textarea 提交到服务器端。知道这些,服务器端代码就太简单了:[AcceptVerbs(HttpVerbs.Post)] [ValidateInput(false)]public ActionResult Create(FormCollection collection) { blog.Content = collection["e.
阅读全文
Htmlhelper—CheckBox自动生成两个input
摘要:前言在之前的一篇文章中小猪分享了Htmlhelper的用法。其中有意思的一个就是Checkbox,有必要单独拿出来讲一讲。Htmlhelper—CheckBox细心的读者一定发现了当使用类似语法 @Html.CheckBox("recommend")生成的html中除了一个type="checkbox"的表单元素之外另外还生成了一个type="hidden"的隐藏元素这两个表单元素都有一个name为"recommend"的属性。type为checkbox的表单元素value为true,type为hidden的表单元
阅读全文
HtmlHelper—DropDownList:SelectList、SelectListItem
摘要:前言在项目中经常使用到DropDownList来显示数据库中的数据,典型的例子为为某书籍选择所属类型。使用SelectList来实现:实现一:Controller 代码SelectList selectList = new SelectList(bookshelper.GetCategoryList());ViewData["Category"] = selectList;View代码@Html.DropDownList("Category",(SelectList) ViewData["Category"])生成代码:注意上面的选择
阅读全文
MVC HtmlHelper
摘要:HTML扩展类的所有方法都有2个参数:以textbox为例子public static string TextBox( this HtmlHelper htmlHelper, string name, Object value, IDictionary htmlAttributes )public static string TextBox( this HtmlHelper htmlHelper, string name, Object value, Object htm...
阅读全文
设置ASP.NET MVC站点默认页为html页
摘要:问题由来部署了一个Asp.Net MVC的站点,其功能只是作为移动端的服务器,服务器空间里面除了CMS以外就没有其他的页面了。这对于我们来说确实是有点浪费了。可以放点静态的啥小东西放在上面玩一玩。所以就出现了标题中出现的问题。解决方案:方法1:在Global.asax文件中增加 protected void Application_BeginRequest(object sender, EventArgs e) { if (Context.Request.FilePath == "/") Context.RewritePath("index.html")
阅读全文
在ASP.NET MVC 中获取当前URL、controller、action
摘要:URL的获取很简单,ASP.NET通用:【1】获取完整url(协议名+域名+虚拟目录名+文件名+参数)stringurl=Request.Url.ToString();【2】获取虚拟目录名+页面名+参数:stringurl=Request.RawUrl;(或stringurl=Request.Url.PathAndQuery;)【3】获取虚拟目录名+页面名:stringurl=HttpContext.Current.Request.Url.AbsolutePath;(或stringurl=HttpContext.Current.Request.Path;)【4】获取域名:stringurl=H
阅读全文
ASP.NET MVC 上传大文件时404
摘要:前一段时间会员的上传组件改用FLASH的swfupload来上传,既能很友好的显示上传进度,又能完全满足大文件的上传。后来服务器升级到windows 2008,改为IIS7后,上传文件一旦超过30M时,就出现404错误,而且是是上传进度达到100%之后,真是让人难思其解。反复测试,发现FLASH上传文件到并没有正确的执行.NET程序,也就是.NET程序本身有问题;但小于30M又是一切OK,难道是上传的文件大小有所限制?检查web.config的httpRuntime :已经是很大值了。因为无法正确得到详细的错误信息,就用一个普通的FORM提交一个FileUpload测试,原来真是web.con
阅读全文
ASP.NET MVC 在子页中引用头文件
摘要:在很多时候我们把网站公共的js、css文件放在模板页中,这样在具体的每一个页面里面就不需要单独引用。ASP.NET WebForm里面使用.site文件。而在ASP.NET MVC 中使用了类似下面的定义_Layout.cshtml: @ViewBag.Title @RenderBody()这样在子页中的代码就直接进入html的body中了。但是有时候单独的页面有单独的头文件,不需要在模板页中引用。那此时需要用如下的方法了:_Layout.cshtml: @ViewBag.Title @RenderSection("Head", requ...
阅读全文
ASP.NET MVC FileResult介绍
摘要:在前一篇中,小猪向大家分享了在WebForm中使用Response.WriteFile()方法来向客户端提供指定文件的下载。这篇小猪向大家介绍在ASP.NET MVC中怎么为客户端实现相同的功能。我们可以定义Control的返回类型为FileResult来向客户端提供文件的下载。Public FileResult DownLoad(){ //Some code ...}FileResult 是一个抽象类,继承自 ActionResult。在 System.Web.Mvc.dll 中,它有如上三个子类,分别以不同的方式向客户端发送文件。在实际使用中我们通常不需要直接实例化一个 Fil...
阅读全文
ASP.NET 使用Response.WriteFile方法下载文件
摘要:在IIS中,直接在浏览器中输入文件的路径可实现文件的下载,但是这个方法不方便控制用户的权限,所以小猪使用了下列方法来输出文件流。取代了直接下载文件。这样就可以在下载文件之前验证用户的信息等等。string path = Server.MapPath("~/小猪测试.doc");//文件的路径 System.IO.FileInfo file = new System.IO.FileInfo(path); Response.Clear(); Response.Charset = "utf-8";//设置输出的编码 Response.ContentEncodi
阅读全文
在ASP.NET中启动SQL SERVER缓存
摘要:在小猪的一次面试中,面试官问过这样的问题,在我们打开网站的时候我们需要向数据库取数据,大家是每次都去取呢还是通过什么方法呢?当时小猪虽然知道可以通过缓存来减少不必要的数据库访问次数,但是却并不知道怎么来完成这样的功能。这样一段时间之内一直纠结于怎么搞他呢?这段时间小猪比较清闲,有了很多时间思考之前没时间思考的东西,所以好好的把数据库缓存这块的知识整理整理。好吧,下面进入正题。要想使用SQL SERVER 自带的缓存功能需要以下步骤:1. sqlserver中使用语句启用监听服务ALTER DATABASE TestDB SET ENABLE_BROKER;如果启用失败或者很长时间一直在执行请执
阅读全文
ASP.NET MVC权限验证
摘要:在WEB FORM 里可以写一个通用类继承自Page类,在其Page_Load()事件中对session进行验证。而在MVC中可以使用C#的"特性"(或者叫过滤器)来进行身份验证。自定义一个过滤器,重写其OnActionExecuting(ActionExecutingContext)方法。该方法是在Action执行之前先进行验证。public class LoginFilter : System.Web.Mvc.ActionFilterAttribute{ public override void OnActionExecuting(System.Web.Mvc.Acti
阅读全文
ASP.NET MVC 中表单的Encode及Decode
摘要:前端cshtml里面需要decode时使用@Html.Raw(HttpUtility.HtmlDecode(Model.Contents))对应的action里需要encode的地方使用HttpUtility.HtmlEncode(collection["newsContentData"]);
阅读全文
从客户端XXX中检测到有潜在危险的 Request.Form值——终极解决方案
摘要:说明:ASP.NET 在请求中检测到包含潜在危险的数据,因为它可能包括 HTML 标记或脚本。该数据可能表示存在危及应用程序安全的尝试,如跨站点脚本攻击。如果此类型的输入适用于您的应用程序,则可包括明确允许的网页中的代码。有关详细信息,请参阅 http://go.microsoft.com/fwlink/?LinkID=212874。异常详细信息:System.Web.HttpRequestValidationException: 从客户端(newsContent="后台测试后台测试")中检测到有潜在危险的 Request.Form 值。出现这个情况通常都是由于在表单中输入
阅读全文
小猪也来谈谈MVC和WebForm
摘要:开通博客有段时间了,才发现给自己预留的Web开发这个栏目一直空着,所以今天抽点时间来说说这块,由于有段时间不接触web端的东西了,所以只是凭自己的映像谈谈标题中所设计到的两种开发吧。这段时间关注了公司里面几个不是我们以前团队的人,一直只知道其是做.NET的,但具体做什么一直不太清楚。上两天偶然的机会端个茶杯在其后面看了会,定睛一看,看到了一个@符号后面接上一对{},而大括号里面写着html和C#混排的代码,好熟悉的东西啊。C#的代码都是黄色的标记~~~好熟悉的代码风格,这让我瞬间找到了去年的下半年的时光,那会在那个公司里只有我一个人做.NET后台。具体一项功能怎么做,以什么样的方式做,效率高不
阅读全文
浙公网安备 33010602011771号