ASP.NET 项目总结

恩,第一次用 ASP.NET MVC 开发正式项目。好累。一直在抠细节, 现在把这一个礼拜学到的东西总结下, 新手要多总结!

一、JS 总结

首先, 加载 JS 文件。在 .cshtml 文件中, 加载 js 有很多方式, 可以直接用标签加载进来。

@section HeaderJS
{
    <link rel="stylesheet" type="text/css" href="../Content/css/indexstyle.css" />
    <link rel="stylesheet" href="../Content/js/ZTree/css/zTreeStyle/zTreeStyle.css">
    <script src="../Content/js/ZTree/js/jquery.ztree.all-3.5.js"></script>
    <script src="../Scripts/tableExport.js"></script>
    <script src="../Scripts/jquery.base64.js"></script>
    <script src="../../Content/js/public.js"></script>
    <script type="text/javascript">
}

从以上例子可以看出,这个方法可以用来加载 .js, .css 文件到 .cshtml 文件中。 你可以定义自己的 .js 文件, 然后用这种方式加载进来。这样你就可以在这个文件里面使用 .js 文件中的函数了。 如 public.js 文件如下:

//格式化Json数据中的时间
function formatTime(dateTime) {
    var date = new Date(parseInt(dateTime.replace("/Date(", "").replace(")/", ""), 10));
    var month = date.getMonth() + 1 < 10 ? "0" + (date.getMonth() + 1) : date.getMonth() + 1;
    var currentDate = date.getDate() < 10 ? "0" + date.getDate() : date.getDate();
    var hour = date.getHours() < 10 ? "0" + date.getHours() : date.getHours();
    var min = date.getMinutes() < 10 ? "0" + date.getMinutes() : date.getMinutes();
    return date.getFullYear() + "-" + month + "-" + currentDate + " " + hour + ":" + min;
}


这样就可以直接在 HeaderJS 这个 section 中使用 formateTime() 函数。

zTree 的使用。

在另外文章中讲解。

ASP.NET MVC 3 导出导入 HTML table 到 csv 文件

在另外文章中讲解。

HTML checkbox 全选和全不选的实现

function changeCheckBoxState() {

        $("#chkcheckall").click(function () {
            $('.radio').prop("checked", this.checked);
        }); 
    }

这里有个问题是不能使用 checkbox 的 change 事件。 在 IE 中, 第一次点中 checkbox 并不触发 change 事件, 直接用 click 事件绕开这个问题。

判断浏览器是否是 IE

function isIE() { //ie?
                if (!!window.ActiveXObject || "ActiveXObject" in window) {
                    return true;
                }
                if (navigator.userAgent.split(";")[1].toLowerCase().indexOf("msie") == "-1") {
                    return false;
                } else {
                    return true;
                }
            }

这个又败给 IE 了, IE 11 的 userAgent 里面根本没有 "ie" 字符, 这得坑掉多少人。第一个 if 语句是用来判断是否是 IE 11 的。

二、ASP.NET MVC 总结

首先, Controller

在 Controller 中,向 view 返回的方式有很多, 比如:

return Content("ok");

//
        // 摘要:
        //     使用字符串创建一个内容结果对象。
        //
        // 参数:
        //   content:
        //     要写入到响应的内容。
        //
        // 返回结果:
        //     内容结果实例。
return Content("ok");
//
        // 摘要:
        //     创建 System.Web.Mvc.JsonResult 对象,该对象使用指定 JSON 请求行为将指定对象序列化为 JavaScript 对象表示法
        //     (JSON) 格式。
        //
        // 参数:
        //   data:
        //     要序列化的 JavaScript 对象图。
        //
        //   behavior:
        //     JSON 请求行为。
        //
        // 返回结果:
        //     将指定对象序列化为 JSON 格式的结果对象。
return Json(data, JsonRequestBehavior.AllowGet);
//
        // 摘要:
        //     创建一个将视图呈现给响应的 System.Web.Mvc.ViewResult 对象。
        //
        // 返回结果:
        //     将视图呈现给响应的视图结果。
return View();
//
        // 摘要:
        //     创建一个呈现分部视图的 System.Web.Mvc.PartialViewResult 对象。
        //
        // 返回结果:
        //     分部视图结果对象。
return PartialView();

这个需要去看 MSDN 文档, 随时都会用到这些方法, 需要知道他们到底是干嘛的。 在 System.Web.Mvc.Controller 中有介绍。

三、Entity Framework 总结
         

Entity Framework 是一款很好用的 OA 框架。 非常容易上手, 如果项目小, 不想用数据库, 可以利用 EF 来生成本地的 .mdb 文件, 作为数据存储工具。 遇到的一个问题是,在连接远程数据库是,  服务器资源管理器能够连到数据库, 但是 EF 老是报无法打开连接的错误。 这肯定是 url 连接信息设置错误。

  <connectionStrings>
    <!--<add name="DefaultConnection" connectionString="Data Source=(LocalDb)\v11.0;Initial Catalog=aspnet-Mvcpro1-20141022154431;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\aspnet-Mvcpro1-20141022154431.mdf" providerName="System.Data.SqlClient" />-->
    <!--<add name="hour1Entities" connectionString="metadata=res://*/Models.Model1.csdl|res://*/Models.Model1.ssdl|res://*/Models.Model1.msl;provider=System.Data.SqlClient;provider connection string="data source=.;initial catalog=hour1;user id=sa;password=123456;MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient" />
    <add name="hourEntities" connectionString="metadata=res://*/Models.Hour.csdl|res://*/Models.Hour.ssdl|res://*/Models.Hour.msl;provider=System.Data.SqlClient;provider connection string="data source=.;initial catalog=hour1;user id=sa;password=123456;multipleactiveresultsets=True;application name=EntityFramework"" providerName="System.Data.EntityClient" />-->
    <add name="complaintSysDBEntities" connectionString="metadata=res://*/complaintSys.csdl|res://*/complaintSys.ssdl|res://*/complaintSys.msl;provider=System.Data.SqlClient;provider connection string="data source=114.80.154.68,32433;initial catalog=complaintSysDB;user id=sa;password=12344321;MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient"/>
  </connectionStrings>


 



郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。