zoukankan      html  css  js  c++  java
  • 第一次用ASP.NET MVC2 做网站

    大概有5年没有做网站了,最近帮朋友做一个小网站,正好体验一下ASP.NET MVC2。
    花了两个周末整整4天时间编写了整个网站的网页框架和后台代码,美工设计和产品内容的填充是别人做的。
    接下来说一下这次做网站的几点心得:
    1)5年前对于小网站来说只要IE6中排版没问题就行了,现在则不同了,要考虑IE8、Firefox、Chrome等。
    第一个问题就是在IE6/IE7里CSS的text-align属性不仅对文字起作用,对盒子也起作用。
    因此如果用text-align做右对齐或居中对齐在IE8里排版就会乱掉。解决方法是右对齐设置float属性,
    水平居中则没有直接的方法,可以通过设置margin-left:auto和margin-right:auto来实现。
    第二个问题是盒子的宽度和高度是否包括padding,是否包括margin,对于CSS2的模型很不习惯。
    2)绝对定位,指定position:absolute后并不直接相对于所在的容器定位,需要父对象有定位设置。
    3)IE6/IE7不支持displayed:inline-block,支持该属性的呢block之间的间距不一样。
    4)使用P元素时,段落与容器的间距IE8与Firefox的显示不一致,后来改用span和相对定位。
    5)刚开始有很大一部分时间花在写CSS调整排版,由此感慨啊WPF的Panel和Style是多么的好用,LaTex的盒子排版模型又是多么的先进。
    W3C真应该考虑一下简单性、一致性、正交性、完备性之类的问题。
     
    以上说的都是CSS,接下来进入正题ASP.NET MVC2。
    1)看着VS自动生成的代码,经过简单的学习就上手了。关键是HtmlHelper,UrlHelper,ViewData的使用。
    2)MVC最大好处一是最终生成的页面不像以前的ASP.NET页面那么臃肿了,浏览器下载和加载会快一些。
    二是URL直接对应服务器方法的调用,而且返回的结果比较灵活。
    3)整体来看,使用MVC后需要书写的代码量减少了,对于一些典型问题有封装好的解决方法。
    4)使用MVC后对JavaScript的依赖提高了,很多功能适合用JavaScript来实现。结合Ajax用户体验变好了。
    5)支持ASP.NET 4.0的网站空间目前比较难找而且价格高,这倒是个问题。
    下面是几个技巧:
    1)表单验证失败后,直接返回View,已填写的内容就会清空,可以这样做:
    ViewData.ModelState.AddModelError("FormValidator", message);
    foreach (string field in Request.Form.Keys)
    {
           ViewData.Add(field, Request.Form[field].Trim());
    }
    然后Form中用HtmlHelper创建的Input控件会自动从ViewData中获取value。
     
    2)输出纯文本:return Content(message, "text/plain", Encoding.UTF8); 或者
    return new ContentResult { Content = message, ContentType = "text/plain", ContentEncoding = Encoding.UTF8 };
        显示PDF文件:
    return File("~/Content/developersguide.pdf", "application/pdf", "developersguide.pdf");
     
    3)HTML的select元素默认第一个选项是选中的,需要javascript执行oSelect.selectedIndex = -1;变成不选中状态。
  • 相关阅读:
    pip不是内部或外部命令也不是可运行的程序或批处理文件的问题
    动态规划 leetcode 343,279,91 & 639. Decode Ways,62,63,198
    动态规划 70.climbing Stairs ,120,64
    (双指针+链表) leetcode 19. Remove Nth Node from End of List,61. Rotate List,143. Reorder List,234. Palindrome Linked List
    建立链表的虚拟头结点 203 Remove Linked List Element,82,147,148,237
    链表 206 Reverse Linked List, 92,86, 328, 2, 445
    (数组,哈希表) 219.Contains Duplicate(2),217 Contain Duplicate, 220(3)
    重装系统
    java常用IO
    端口
  • 原文地址:https://www.cnblogs.com/rufi/p/1766199.html
Copyright © 2011-2022 走看看