Asp.Net MVC学习笔记(一)谨记点

来源:互联网 发布:雅思大作文 知乎 编辑:程序博客网 时间:2024/05/16 06:48

写了好几年的VB代码。去年开始用C#写了一些服务类的功能。最近几天开始学习Web方向的东东。

VB的方便,估计是其它语言比不了了。这系列文章主要记录一些比较不好理解的问题供回忆。思想变化是一个很宝贵的过程。

另外,推荐一个QQ群。 134546850,群主自创了12306的抢票软件,猎豹浏览器的抢票插件也是他写的。

我学习的方法是先让代码跑起来,后面再理解它的意义编程只是一个工具


工具:VS2010。

一切学习都是从新建“VS2010的ASP.NET MVC 2 Web 应用程序”开始搞起。


一:路由

没去理解它。但我在写了几个界面后,发现要测试新界面时,都得点几次才能到达想测试的界面。最近就通过改路由的方式运行起来就到了新界面。


原代码:

<span style="white-space:pre"></span>    routes.MapRoute(                "Default", // 路由名称                "{controller}/{action}/{id}", // 带有参数的 URL                new { controller = "Home", action = "Index", id = UrlParameter.Optional } // 参数默认值            );
        此时,运行起来时,会到达Home控制器的Index方法。我修改如下:

<span style="white-space:pre"></span>    routes.MapRoute(                "Default", // 路由名称                "{controller}/{action}/{id}", // 带有参数的 URL                //new { controller = "Home", action = "Index", id = UrlParameter.Optional } // 参数默认值                new { controller = "SysUserHospital", action = "AddHospital", id = "4a1b8415-f365-41ef-9d83-0dae0c0ba71a" } // 参数默认值            );
现运行时,就到了SysUserHospital控制器的AddHospital方法,但这个方法有个参数,所以把初始值也加上。

这里也有一个最恶搞的地方。路由这里的最后一个参数是id,AddHospital方法的参数名也得写为id.否则值传不过去,无法理解。关于命名的问题在好多地方都有体现。再举一例:

       <tr>            <td>                <%: Html.ActionLink("Cancel", "CancelAccept", new { RID = item.RID }) %>            </td>            <td>                <%: item.RID %>            </td>            <td>                <%: item.Hospital.City.Name %>            </td>            <td>                <%: item.Hospital.Name%>            </td>        </tr>
      这里的参数是RID,对应的控制器处,参数也必须写成RID,你写成ID试试,传不过值来。日了狗了

       

<span style="white-space:pre"></span>public ActionResult CancelAccept(Guid RID) {            SysUserHospital sysuserHospital = dao.getItemByRID(RID);            if (sysuserHospital == null) {                return View();            }            dao.Delete(sysuserHospital);            return Index(sysuserHospital.SysUser);        }

二:运行方式

Model View Controller

View负责展示内容,它控制页面格式,数据由Controller提供。

Controller负责页面的跳来跳去加数据验证。

Model是数据本身。我不习惯用EF,以我目前的水平好多东西不可控,还得再学。自己写过一些代码生成器,稍为改改就生成了一堆堆的Model。

运行起来后,先跑步到Controller的某个方法,这个方法组织好Model再传给View,由View来展示。

用户在View上操作时,再把操作内容以参数形式传递给Controllser,来完成当前动作。


三:JavaScript

我以为这个东东是默认引用的,没想到还得手动添加引用。算是先入为主了,还拿去问人了。

  

    <p>        <button id="save">Save</button>    </p>    <script src="../../Scripts/jquery-1.4.1.min.js" type="text/javascript"></script>    <script type="text/javascript" language="javascript">            $(document).ready(function () {            $("#save").click(function () {                alert("ok");            });        });            </script>
一开始没加引用,点了按钮没反应,就懵了。加了才响应了我的号召。

四:Model

没有用EF,自己写的Model,在展示数据时外键字段展示不出来。

比如SysUser有一个SexID,如果展示,肯定想展示他的男女,但展示出来的是1,2.

于是把Sex这个类当成了SysUser的一个属性,在得到SysUser时,给Sex属性赋值。在展示数据时就可以用SysUser.Sex.Name来显示性别了。


先打住一下。

0 0
原创粉丝点击