ASPNETMVC3中文版教程.docx

上传人:b****3 文档编号:3680553 上传时间:2022-11-24 格式:DOCX 页数:81 大小:2.01MB
下载 相关 举报
ASPNETMVC3中文版教程.docx_第1页
第1页 / 共81页
ASPNETMVC3中文版教程.docx_第2页
第2页 / 共81页
ASPNETMVC3中文版教程.docx_第3页
第3页 / 共81页
ASPNETMVC3中文版教程.docx_第4页
第4页 / 共81页
ASPNETMVC3中文版教程.docx_第5页
第5页 / 共81页
点击查看更多>>
下载资源
资源描述

ASPNETMVC3中文版教程.docx

《ASPNETMVC3中文版教程.docx》由会员分享,可在线阅读,更多相关《ASPNETMVC3中文版教程.docx(81页珍藏版)》请在冰豆网上搜索。

ASPNETMVC3中文版教程.docx

ASPNETMVC3中文版教程

ASP.NET MVC3 快速入门

第一节 概述

1.1本教程的学习内容

在本教程中,你将学会如下内容:

∙如何创建一个ASP.NETMVC的工程。

∙如何创建ASP.NETMVC的控制器(controller)与视图(view)。

∙如何使用EntityFrameworkcode-first范例来创建一个新的数据库。

∙如何获取和显示数据。

∙如何编辑数据并且进行数据的有效性验证。

1.2创建工程

如果要创建一个ASP.NETMVC3的工程时,首先运行VisualWebDeveloper2010Express,并且在起始页(startpage)中选择“新建项目”。

VisualWebDeveloper是一个集成开发环境,你可以使用它来进行各种应用程序的开发。

在VisualWebDeveloper的菜单的下面有一个工具条,可以直接点击工具条中的各个工具按钮来进行各种操作,也可以直接点击菜单中的各个菜单项来进行各种操作,此处我们点击“文件”菜单中的“新建项目”菜单项。

图1-1 VisualWebDeveloper2010Express中的起始页

1.3创建你的第一个应用程序 

你可以使用VisualBasic或VisualC#作为开发语言来创建应用程序。

在本教程中,选择C#来作为开发语言。

点击“新建项目”菜单项后,在打开的“新建项目”对话框中,双击左边的“VisualC#”使其成为展开状态,然后点击“Web”,点击右边的“ASP.NETMVC3Web应用程序”,然后在下方的名称文本框中填入应用程序的名称,在本教程中命名为“MvcMovie”,然后点击确定按钮。

 

图1-2 在新建项目对话框中选择ASP.NETMVC3应用程序并为应用程序命名

在接下来打开的“新ASP.NETMVC3项目”对话框中,点击选中“Internet应用程序”,在“视图引擎”下拉框中保持默认的“Razor”选项不作修改(Razor视图是ASP.NETMVC3种新增的一种十分重要的视图类型,使用它可以使得Web应用程序的开发变得更加方便快捷,在后文中将对此进行详细介绍)。

图1-3 选择项目模板与视图引擎 

点击确定按钮,VisualWebDeveloper会为你所创建的ASP.NETMVC项目提供一个默认模板,这样的话你就拥有了一个可以立刻运行的应用程序。

默认的模板中提供的是一个很简单的显示“欢迎使用ASP.NETMVC!

”文字的应用程序,你可以以此作为你的开发起点。

图1-4 VisualWebDeveloper提供了一个默认的应用程序模板

点击“调试”菜单中的“启动调试”菜单项(该菜单项的快捷键为F5),VisualWebDeveloper将启动一个内置的服务器,并且在该服务器中打开当前Web应用程序的主页,如图1-5所示。

图1-5ASP.NETMVC3的默认应用程序模板的调试画面 

请注意该页面在浏览器中的地址为“http:

//localhost:

4423/”。

其中“localhost”代表了本机上你刚刚创建的Web应用程序的临时网站地址,4423代表了VisualWebDeveloper使用的一个随机端口,每次调试的时候,VisualWebDeveloper都会使用这个端口来作为内置服务器的端口号。

在各计算机上,该端口号都是不相同的,因为该端口号是VisualWebDeveloper随机选择的。

在这个模板应用程序的页面的右上角,提供了两个按钮与一个“登录”链接,点击“登录”链接,页面跳转到登录页面,点击“主页”按钮,页面返回到主页,点击“关于”按钮,页面跳转到“关于”页面。

接下来,让我们开始逐步将这个默认的应用程序修改为我们所要的应用程序,在这个过程中逐步了解ASP.NETMVC3的有关知识。

首先,让我们关闭浏览器并开始代码的修改工作。

第二节 添加一个控制器

MVC的全称为model-view-controller(模型-视图-控制器)。

MVC是一种开发应用程序的模式,这个模式已经具有了很好的框架架构,并且十分容易维护。

使用MVC开发出来的应用程序一般包括以下几块内容:

●控制器(Controller):

控制器类处理客户端向Web应用程序发出的请求,获取数据,并指定返回给客户端,用来显示处理结果的视图。

●模型(Model):

模型类代表了应用程序的数据,这些数据通常具有一个数据验证逻辑,用来使得这些数据必须符合业务逻辑。

●视图(View):

视图类是Web应用程序中用来生成并显示HTML格式的服务器端对客户端请求的响应结果的模板文件。

在本教程中,将全面介绍这些概念,并且向你展示如何利用它们来搭建一个应用程序。

首先,让我们来创建一个控制器(controller)类。

在解决方案资源管理器中,鼠标右击Controllers文件夹,并且点击添加->控制器,如图2-1所示。

图2-1添加控制器

在弹出的“添加控制器”对话框中,将控制器命名为“HelloWorldController”,然后点击添加按钮,如图2-2所示。

图2-2命名控制器

观察解决方案资源管理器中新增加了一个文件,名字为HelloWorldController.cs,并且该文件呈打开状态,如图2-3所示。

图2-3控制器代码

修改打开的HelloWorldController.cs文件,在HelloWorldController类中,创建如代码清单2-1中所示的两个方法,控制器将返回一个HTML格式的字符串。

代码2-1控制器中创建方法

publicclassHelloWorldController:

Controller

{

    //

    //GET:

/HelloWorld/ 

    publicstringIndex()

    {

        return"这是我的默认action...";

    }

    //

    //GET:

/HelloWorld/Welcome/

    publicstringWelCome()

    {

        return"这是我的Welcome方法...";

    }

}

在这个修改后的HelloWorldController控制器中,第一个方法名为Index。

现在让我们从浏览器中调用该方法。

运行应用程序(按F5键或Ctrl+F5键),在打开的浏览器中的地址栏后面,添加“HelloWorld”路径(譬如,在我的计算机上,浏览器中地址为http:

//localhost:

4423/HelloWorld),画面显示如图2-4所示。

由于在Index方法中,直接返回了一个HTML格式的字符串,所以在浏览器中将该字符串显示出来。

 

图2-4HelloWorldController控制器中Index方法的运行结果

在ASP.NETMVC中,可以根据浏览器中的输入地址来调用不同的控制器或控制七种不同的方法。

ASP.NETMVC的默认的映射逻辑使用如下所示的格式来决定应该调用什么控制器或控制器中的什么方法。

/[Controller]/[ActionName]/[Parameters]

URL地址的第一部分决定调用哪个控制器类,所以“/HelloWorld”映射到HelloWorldController控制器类。

第二部分决定调用控制器中的哪个方法。

所以“/HelloWorld/Index”将会调用HelloWorldController控制器类的Index方法。

由于Index方法是控制器类的默认方法(可以另外指定控制器类的默认方法),所以也可只输入“/HelloWorld”来调用该方法。

在浏览器的地址栏中,输入“http:

//localhost:

xxxx/HelloWorld/Welcome”,将会调用HelloWorldController控制器类的Welcome方法,该方法返回“这是我的Welcome方法...”文字,所以浏览器中显示该文字,如图2-5所示。

图2-5HelloWorldController控制器中Welcome方法的运行结果

接下来,让我们修改Welcome方法,以便在URL地址栏中可以传递一些参数给该方法(例如:

/HelloWorld/Welcome?

name=Scott&numtimes=4)。

修改后的代码如下所示。

注意这里我们使用了C#的可选参数,当URL地址中没有使用numtimes参数时,该参数被默认设定为1。

publicstringWelcome(stringname,intnumTimes=1)

{

    returnHttpUtility.HtmlEncode("Hello"+name+",NumTimesis:

"+numTimes);

}

运行该应用程序,在浏览器中输入“http:

//localhost:

xxxx/HelloWorld/Welcome?

name=Scott&numtimes=4”,运行结果显示如图2-6所示。

浏览器自动将URL地址栏中的参数映射成Welcome方法中的传入参数。

图2-6 在Welcome方法中使用参数

到现在为止,我们展示了MVC中的“VC”(视图与控制器)部分的工作机制,控制器返回HTML字符串。

很显然大多数情况下你不想让控制器直接返回HTML字符串,因为那样的话编码起来就太麻烦了。

所以我们需要使用不同的视图模板文件来帮助生成HTML格式的页面文件,在下一节中让我们来看一下如何在ASP.NETMVC3中使用视图。

第三节 添加一个视图

3.1  添加一个视图

在本节中我们修改HelloWorldController类,以便使用视图来向客户端展示HTML格式的响应结果。

我们使用ASP.NETMVC3中新增的Razor视图引擎来创建视图。

Razor视图模板文件的后缀名为.cshtml,它提供了一种简洁的方式来创建HTML输出流。

Razor视图大大减少了在书写视图模板文件时所需要输入的字符,提供了一个最快捷,最简便的编码方式。

这里,我们在HelloWorldController类的Index方法中添加使用一个视图。

在修改前的Index方法中返回一个字符串,我们修改这个方法来使它返回一个视图,代码如下所示。

publicActionResultIndex()

{

      returnView();

}

这段代码表示Index方法使用一个视图模板来在浏览器中生成HTML格式的页面文件。

接着,让我们来添加一个Index方法所使用的视图模板。

在Index方法中点击鼠标右键,然后点击“添加视图”,将会弹出一个“添加视图”对话框。

 

图3-1添加视图

图3-2 添加视图对话框

在该对话框中,不做任何修改,直接点击添加按钮,观察解决方案资源管理器中,在MvcMovie项目下的Views文件夹下创建了一个HelloWorld文件夹,并且在该文件夹中创建了一个Index.cshtml文件,同时该文件呈打开状态,如图3-3所示。

图3-3 视图模板文件被创建并呈打开状态

让我们在该文件中追加一些文字,代码如代码清单3-1所示。

代码3-1Index.cshtml视图模板文件

@{

    ViewBag.Title="首页";

}

首页

这是我的第一个视图模板

运行应用程序,输入地址“http:

//localhost:

xxxx/HelloWorld”。

由于在Index方法中并没有做任何事情,只是简单地一行代码“returnView()”,该行代码表示我们使用一个视图模板文件来在浏览器中展示响应结果。

因为我们并没有显式指定使用哪个视图模板文件,所以使用了默认的Views文件夹下的HelloWorld文件夹下的Index.cshtml视图模板文件。

该视图模板文件中只有简单的两行文字,在浏览器中的显示结果如图3-4所示。

图3-4 在浏览器中显示视图

看上去还不错,但是请注意,该网页的标题为“首页”,但是网页中的大标题文字却为“我的MVC应用程序”,需要修改一下。

3.2修改视图--修改应用程序的页面布局 

首先,让我们修改页面大标题中的“我的MVC应用程序”文字。

这段文字是所有页面中的公共大标题,在这个应用程序中,虽然所有页面中都显示了这个共同的大标题,但只有一处地方对其进行了设置。

打开解决方案资源管理器中Views文件夹下的Shared文件夹下的_Layout.cshtml文件。

该文件被称为布局页面,位于公有文件夹Shared下,被所有其他网页所共用。

图3-5 公有布局页面 

布局模板页允许你统一在一个地方指定整个Web应用程序或Web网站的所有HTML页面的布局方法。

请注意文件底部的“@RenderBody()”代码行。

@RenderBody()是一个占位符,代表了所有你创建出来的实际应用的视图页面,在这里统一指定。

将布局模板文件中的“我的MVC应用程序”修改为“我的MVCMovie应用程序”。

代码如下所示。

    

我的 MVCMovie 应用程序

运行应用程序,注意网页中的大标题被修改为“我的MVCMovie应用程序”。

点击“关于”链接,你可以看见“关于”页面中的大标题也被修改为“我的MVCMovie应用程序”。

由此可以看出一旦修改了布局页面中的某处地方,该修改将会被应用到所有页面中。

图3-6在布局页面中修改了网页中显示的大标题

 完整的_Layout.cshtml文件中的代码如代码清单3-2所示。

代码清单3-2_Layout.cshtml文件中的完整代码

DOCTYPEhtml>

    

    @ViewBag.Title

    

type="text/css"/>

    

type="text/javascript">

    

        

            

                

我的 MVCMovie 应用程序

            

            

                @Html.Partial("_LogOnPartial")

            

            

                

                    

  • @Html.ActionLink("主页","Index","Home")
  •                     

  • @Html.ActionLink("关于","About","Home")
  •                 

                

            

            

                @RenderBody()

                

                

            

        

     现在,让我们修改Index视图页面的标题。

    打开Views文件夹下的HelloWorld文件夹下的Index.cshtml文件。

    这里我们修改两处地方:

    首先,修改浏览器中的标题,然后修改

    标签中的小标题文字。

    修改后代码如代码清单3-3所示。

    代码清单3-3修改后的Index.cshtml视图模板文件

    @{

        ViewBag.Title="电影清单";

    }

    我的电影清单

    这是我的第一个视图模板

    ViewBag对象的Title属性代表了显示该页面时的浏览器中的标题文字。

    让我们回头看一下布局模板文件,在该文件的区段中的标签中使用了这个值来作为浏览器中的网页标题。</p><p>同时,通过这种方法,你可以很容易地在你的视图模板文件与布局模板文件之间进行参数的传递。</p><p>运行应用程序,在地址栏中输入“http:</p><p>//localhost:</p><p>xxxx/HelloWorld”,注意浏览器中的网页标题,页面中的小标题文字都变为修改后的标题文字(如果没有发生变化的话,则可能你的网页被缓存住了,可以按Ctrl+F5键来在重新刷新页面时取消缓存)。</p><p>同时也请注意_Layout.cshtml文件中的占位符中的内容被替换成了Index.cshtml视图模板中的内容,所以浏览器中展示的是一个单一的HTML文件。</p><p>浏览器中的运行结果如图3-7所示。</p><p>图3-7修改了标题后的Index视图模板文件</p><p>此处,我们的数据(“这是我的第一个视图模板”文字)是被直接书写在文件中的,也就是说我们使用到了MVC应用程序的“V”(视图View)与“C”(控制器Controller)。</p><p>接下来,我们讲解一下如何创建一个数据库并从该数据库中获取模型数据。</p><p>3.3将控制器中的数据传递给视图</p><p>在我们使用数据库并介绍模型之前,首先我们介绍一下如何将控制器中的信息传递给视图。</p><p>浏览器接收到一个URL请求后,将会调用控制器类来进行响应。</p><p>你可以在控制器类中进行对接收到的页面参数进行处理的代码,你可以在控制器类中书写从数据库中获取数据的代码,你也可以在控制器类中书写代码来决定返回给客户端什么格式的响应文件。</p><p>控制器可以利用视图模板文件来生成HTML格式的响应文件并显示在浏览器中。</p><p> 控制器类负责提供视图模板文件在生成HTML格式的响应文件时所需要的任何数据或对象。</p><p>一个视图模板文件不应该执行任何业务逻辑,也不应该直接和数据库进行交互。</p><p>它只能和控制器类进行交互,获取控制器类所提供给它的数据,这样可以使你的代码更加清晰,容易维护。</p><p>现在在我们的应用程序中,HelloWorldController控制器类中的Welcome方法带有两个参数—name与numTimes,Welcome方法直接向浏览器输出这两个参数的参数值。</p><p>这里,我们修改该方法使其不再直接输出数据,而是使用一个视图模板。</p><p>该视图模板将生成一个动态的响应流,这意味着我们需要将数据从控制器类传递给视图以便利用该数据来生成该响应流。</p><p>我们在该控制器类中将视图模板所需要的数据送入一个ViewBag对象中,该对象可以被视图模板直接接收。</p><p>打开HelloWorldController.cs文件,修改Welcome方法,在该方法中为ViewBag对象添加一个Message属性与NumTimes属性,并且将属性值分别设定为经过处理后的name参数值与numTimes参数值。</p><p>ViewBag对象是一个动态对象,你可以为它添加任何属性并赋上属性值。</p><p>在未赋值之前该属性是不生效的,直到你赋值为止。</p><p>修改后的HelloWorldController.cs文件中的代码如代码清单3-4所示。</p><p>代码清单3-4修改后的HelloWorldController.cs文件</p><p>usingSystem.Web;</p><p>usingSystem.Web.Mvc;</p><p>namespaceMvcMovie.Controllers</p><p>{</p><p>    publicclassHelloWorldController:</p><p>Controller</p><p>    {</p><p>        //</p><p>        //GET:</p><p>/HelloWorld/</p><p>        publicActionResultIndex()</p><p>        {</p><p>            returnView();</p><p>        }</p><p>        //</p><p>        //GET:</p><p>/HelloWorld/Welcome/</p><p>        publicActionResultWelcome(stringname,intnumTimes=1)</p><p>        {</p><p>            ViewBag.Message="Hello"+name;</p><p>            ViewBag.NumTimes=numTimes;</p><p>            returnView();</p><p>        }</p><p>    }</p><p>}</p><p>现在ViewBag对象中已经包含了数据,它将被自动传递给视图。</p><p>  </p><p>接下来,我们需要创建一个Welcome视图模板。</p><p>在“调试”菜单中,点击“生成MvcMovie”将应用程序进行编译,如图3-8所示。</p><p>图3-8 编译应用程序</p><p>接下来,在Welcome方法中点击鼠标右键,然后点击“添加视图”,弹出对话框如图3-9所示。</p><p>图3-9为Welcome方法添加视图</p><p>在该对话框中不做任何修改,直接点击添加按钮,View文件夹下的HelloWorld文件夹中自动被创建了一个Welcome.cshtml文件,打开该文件,在<h2>元素下添加代码,让浏览器显示URL地址中传入的name参数中设定的文字,显示次数等于URL地址中传入的numTimes参数中设定的次数。</p><p>修改后的Welcome.cshtml文件中的代码如代码清单3-5所示。</p><p>代码清单3-5修改后的Welcome.cshtml文件</p><p>@{</p><p>    ViewBag.Title="Welcome";</p><p>}</p><p><h2>Welcome</h2></p><p><ul></p><p>@for(inti=0;i<ViewBag.NumTimes;i++)</p><p>{</p><p>    <li>@ViewBag.Message</li></p><p>}</p><p></ul></p><p>运行应用程序,并且在地址栏中输入“http:</p><p>//localhost:</p><p>xx/HelloWorld/Welcome?</p><p>name=Scott&numtimes=4”,该地址栏中的页面参数将会自动传递给控制器。</p><p>控制器将会把这些参数值放入ViewBag对象中并且传递给视图。</p><p>视图再在浏览器中显示这些数据。</p><p>图3-10视图中显示从控制器类中传递过来的数据</p><p>这里,我们使用了模型“M”的一种方式,但是不是数据库的方式。</p><p>在下一节中,我们将创建一个数据库,并且介绍如何对该数据库中的数据进行处理。</p><p>第四节 添加一个模型</p><p>在本节中我们将追加一些类来管理数据库中的电影。</p><p>这些类将成为我们的MVC应用程序中的“模型”部分。</p><p> 我们将使用一个.NETFramework的被称之为“EntityFramework”的数据访问技术来定义这些模型类,并使用这些类来进行操作。</p><p>EntityFramework(通常被简称为“EF”)支持一个被称之为“c</p> </div> <div class="readmore" onclick="showmore()" style="background-color:transparent; height:auto; margin:0px 0px; padding:20px 0px 0px 0px;"><span class="btn-readmore" style="background-color:transparent;"><em style=" font-style:normal">展开</em>阅读全文<i></i></span></div> <script> function showmore() { $(".readmore").hide(); $(".detail-article").css({ "height":"auto", "overflow": "hidden" }); } $(document).ready(function() { var dh = $(".detail-article").height(); if(dh >100) { $(".detail-article").css({ "height":"100px", "overflow": "hidden" }); } else { $(".readmore").hide(); } }); </script> </div> <script> var defaultShowPage = parseInt("5"); var id = "3680553"; var total_page = "81"; var mfull = false; var mshow = false; function DownLoad() { window.location.href='https://m.bdocx.com/down/3680553.html'; } function relate() { var reltop = $('#relate').offset().top-50; $("html,body").animate({ scrollTop: reltop }, 500); } </script> <script> var pre = "https://file1.bdocx.com/fileroot1/2022-11/24/66cdaf17-1580-4543-aa94-7a8c0b0d7265/66cdaf17-1580-4543-aa94-7a8c0b0d7265"; var freepage = parseInt('20'); var total_c = parseInt('81'); var start = defaultShowPage; var adcount = 0; var adindex = 0; var adType_list = ";0;1;2;3;4;5;6;7;8;9;10;11;12;13;14;15;16;17;18;19;"; var end = start; function ShowSvg() { end = start + defaultShowPage; if (end > freepage) end = freepage; for (var i = start; i < end; i++) { var imgurl = pre + (i + 1) + '.gif'; var html = "<img src='" + imgurl + "' onerror=\"this.src='/images/s.gif'\" alt=\"ASPNETMVC3中文版教程.docx_第" + (i + 1) + "页\" width='100%'/>"; $("#page").append("<div class='page'>" + html + "</div>"); $("#page").append("<div class='pageSize'>第" + (i + 1) + "页 / 共" + total_c + "页</div>"); if(adcount > 0 && adType_list.indexOf(";"+(i+1)+";")>-1) { if(adindex > (adcount-1)) adindex = 0; $("#page").append("<div class='pagead' id='addiv"+(i + 1)+"'></div>"); document.getElementById("addiv"+(i + 1)+"").innerHTML =document.getElementById("adpre" + adindex).outerHTML; adindex += 1; } } start = end; if (start > (freepage - 1)) { if (start < total_c) { $("#pageMore").removeClass("btnmore"); $("#pageMore").html("亲,该文档总共" + total_c + "页,到这儿已超出免费预览范围,如果喜欢就下载吧!"); } else { $("#pageMore").removeClass("btnmore"); $("#pageMore").html("亲,该文档总共" + total_c + "页全部预览完了,如果喜欢就下载吧!"); } } } //$(document).ready(function () { // ShowSvg(); //}); </script> <div id="relate" class="container" style="padding:0px 0px 15px 0px; margin-top:20px; border:solid 1px #dceef8"> <div style=" font-size: 16px; background-color:#e5f0f7; margin-bottom:5px; font-weight: bold; text-indent:10px; line-height: 40px; height:40px; padding-bottom: 0px;">相关资源</div> <div id="relatelist" style="padding-left:5px;"> <ul> <li><em class="docx"/></em><a target="_parent" href="https://m.bdocx.com/doc/30873085.html" title="叉车使用中需要注意事项.docx">叉车使用中需要注意事项.docx</a> </li><li><em class="docx"/></em><a target="_parent" href="https://m.bdocx.com/doc/30872780.html" title="人力资源管理-基于创新创业视角智慧树知到期末考试答案2023年.docx">人力资源管理-基于创新创业视角智慧树知到期末考试答案2023年.docx</a> </li><li><em class="doc"/></em><a target="_parent" href="https://m.bdocx.com/doc/30872589.html" title="第5章-VXI总线技术.doc">第5章-VXI总线技术.doc</a> </li><li><em class="pptx"/></em><a target="_parent" href="https://m.bdocx.com/doc/30872512.html" title="家长幼儿园毕业感言PPT.pptx">家长幼儿园毕业感言PPT.pptx</a> </li><li><em class="ppt"/></em><a target="_parent" href="https://m.bdocx.com/doc/30872346.html" title="心肺复苏急救培训PPT.ppt">心肺复苏急救培训PPT.ppt</a> </li><li><em class="pptx"/></em><a target="_parent" href="https://m.bdocx.com/doc/30872228.html" title="《财务会计》全册课件(完整)..pptx">《财务会计》全册课件(完整)..pptx</a> </li><li><em class="xlsx"/></em><a target="_parent" href="https://m.bdocx.com/doc/30872205.html" title="围墙设计自动计算.xlsx">围墙设计自动计算.xlsx</a> </li><li><em class="ppt"/></em><a target="_parent" href="https://m.bdocx.com/doc/30872179.html" title="人文社会科学概论第四章.ppt">人文社会科学概论第四章.ppt</a> </li><li><em class="pptx"/></em><a target="_parent" href="https://m.bdocx.com/doc/30871875.html" title="单片机创新开发教程 第6章 使用独立按键.pptx">单片机创新开发教程 第6章 使用独立按键.pptx</a> </li><li><em class="ppt"/></em><a target="_parent" href="https://m.bdocx.com/doc/30871835.html" title="6印尼语基础语法.ppt">6印尼语基础语法.ppt</a> </li> </ul> </div> </div> <div class="container" style="padding:0px 0px 15px 0px; margin-top:20px; border:solid 1px #dceef8"> <div style=" font-size: 16px; background-color:#e5f0f7; margin-bottom:5px; font-weight: bold; text-indent:10px; line-height: 40px; height:40px; padding-bottom: 0px;">猜你喜欢</div> <div id="relatelist" style="padding-left:5px;"> <ul> <li><em class="docx"></em> <a href="https://m.bdocx.com/doc/1943479.html" target="_parent" title="PEP小学五年级英语上册全册教案.docx">PEP小学五年级英语上册全册教案.docx</a></li> <li><em class="docx"></em> <a href="https://m.bdocx.com/doc/1943480.html" target="_parent" title="大讨论活动总结共9篇.docx">大讨论活动总结共9篇.docx</a></li> <li><em class="docx"></em> <a href="https://m.bdocx.com/doc/1943481.html" target="_parent" title="word完整版山东专升本计算机真题及答案推荐文档.docx">word完整版山东专升本计算机真题及答案推荐文档.docx</a></li> <li><em class="docx"></em> <a href="https://m.bdocx.com/doc/1943482.html" target="_parent" title="XX石油企业信息管理系统项目建设可行性方案.docx">XX石油企业信息管理系统项目建设可行性方案.docx</a></li> <li><em class="docx"></em> <a href="https://m.bdocx.com/doc/1943483.html" target="_parent" title="安徽省资格从业考试《药学综合知识与技能》试题精选含答案解析第四十篇.docx">安徽省资格从业考试《药学综合知识与技能》试题精选含答案解析第四十篇.docx</a></li> <li><em class="docx"></em> <a href="https://m.bdocx.com/doc/1943484.html" target="_parent" title="第21章侵权责任法.docx">第21章侵权责任法.docx</a></li> <li><em class="docx"></em> <a href="https://m.bdocx.com/doc/1943485.html" target="_parent" title="版数学浙江省学业水平考试专题复习选修21 3.docx">版数学浙江省学业水平考试专题复习选修21 3.docx</a></li> <li><em class="docx"></em> <a href="https://m.bdocx.com/doc/1943486.html" target="_parent" title="班级霸气口号十一班.docx">班级霸气口号十一班.docx</a></li> <li><em class="docx"></em> <a href="https://m.bdocx.com/doc/1943487.html" target="_parent" title="关于文学的作文范文.docx">关于文学的作文范文.docx</a></li> </ul> </div> </div> <div style=" font-size: 16px; background-color:#e5f0f7; margin-top:20px; font-weight: bold; text-indent:10px; line-height: 40px; height:40px; padding-bottom: 0px; margin-bottom:10px;"> 相关搜索</div> <div class="widget-box pt0" style="border: none; padding:0px 5px;"> <ul class="taglist--inline multi"> <li class="tagPopup"><a target="_parent" class="tag tagsearch" rel="nofollow" href="https://m.bdocx.com/search.html?q=ASPNETMVC3">ASPNETMVC3</a></li> <li class="tagPopup"><a target="_parent" class="tag tagsearch" rel="nofollow" href="https://m.bdocx.com/search.html?q=%e4%b8%ad%e6%96%87%e7%89%88">中文版</a></li> <li class="tagPopup"><a target="_parent" class="tag tagsearch" rel="nofollow" href="https://m.bdocx.com/search.html?q=%e6%95%99%e7%a8%8b">教程</a></li> </ul> </div> <br /> <div > 当前位置:<a target="_parent" href="https://m.bdocx.com/">首页</a> > <a href="https://m.bdocx.com/booklist-00004.html">自然科学</a><span> > </span><a href="https://m.bdocx.com/booklist-0000400005.html">数学</a> </div> <br /> <div class="cssnone"> <iframe title="来源" src="https://m.bdocx.com/BookRead.aspx?id=qIcRI0NV3VM%3d&parto=e4QbqX5zBdRsfvnKLqeSnMU3bEoPC7LaqGaM%2fP7aYelhN24ZwlDdM7kRk370%2fnUCjk4t%2bnDm0GJZ5idalgmv1ZzAlHqZcoJQrXDewPTeZteaOnm17EtS1WFcT5I787cufchKV%2bhdC8zObi7XgFWc9kfg4p%2bZacL4ihT1tZtYTOgij1oBXYn8y7xCQRb6%2fvy4j%2fAS5%2fZTDD2I39DgUMIhPIOZA0MWjAt2" frameborder="0" style="width: 0px; height: 0px"> </iframe> </div> <span id="LabelScript"></span> <script src="https://mstatic.bdocx.com/JS/bootstrap-collapse.js"></script> </form> <div class="siteInner_bg" style="margin-top: 40px; border: solid 0px red; margin-left: 0px; margin-right: 0px;"> <div class="siteInner"> <p style="text-align: center;">copyright@ 2008-2022 冰豆网网站版权所有</p><p style="text-align: center;">经营许可证编号:<a href="http://beian.miit.gov.cn/" target="_blank">鄂ICP备2022015515号-1</a></p><script>var _hmt = _hmt || []; (function() { var hm = document.createElement("script"); hm.src = "https://hm.baidu.com/hm.js?2e77bd3f6fe91b0e21d3f22267249ee3"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })();</script><script>(function(){ var el = document.createElement("script"); el.src = "https://lf1-cdn-tos.bytegoofy.com/goofy/ttzz/push.js?81476e42bf626128cf29544ee216a8ed7deb9487dce7ed62313212129c4244a219d1c501ebd3301f5e2290626f5b53d078c8250527fa0dfd9783a026ff3cf719"; el.id = "ttzz"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(el, s); })(window)</script> </div> </div> <div class="trnav clearfix" id="navcontent" style="display: none; background-color:#3a71b1; "> <div class="trlogoside" id="navlogo" style="display: none;"> <a href="https://m.bdocx.com/" title="冰豆网"><img src="https://www.bdocx.com/images/logo_bd.png" alt="冰豆网"></a> <div class="trnavclose" id="navclose"> <span></span> </div> </div> <div class="navcontainer"> <div class="row"> <ul class="nav navbar-nav trnavul headercontent" id="navigation" style="margin:20px 0 0px;"> <li><a target="_parent"href="https://m.bdocx.com/login.aspx">登录</a></li> <li><a target="_parent"href="https://m.bdocx.com/">首页 </a></li> <li><a target="_parent"href="https://m.bdocx.com/booklist-0.html">资源分类 </a></li> <li><a target="_parent"href="https://m.bdocx.com/UserManage/Recharge.aspx?f=0"><img src="https://m.bdocx.com/images/s.gif" alt="new" class="hottip1">升级会员 <img src="https://www.bdocx.com/FileUpload/Images/48520fea-bc98-41ae-b183-84689c7075c9.gif" alt="new" class="hottip"></a></li> <li><a target="_parent"href="https://m.bdocx.com/newslist.html">通知公告 </a></li> <li><a target="_parent"href="https://m.bdocx.com/h-0.html">帮助中心 </a></li> </ul> </div> </div> </div> <script type="text/javascript"> function stopPropagation(e) { var ev = e || window.event; if (ev.stopPropagation) { ev.stopPropagation(); } else if (window.event) { window.event.cancelBubble = true;//兼容IE } } $("#navmore").click(function (e) { $("#navcontent").show(); $("#navlogo").show(); stopPropagation(e); var navcontentwidth = $("#navcontent").width(); $('#navcontent').css({ 'right': '-' + navcontentwidth + 'px' }); $("#navcontent").show().animate({ "right": 0 }, 300); }); $(document).bind('click', function () { var navcontentwidth = $("#navcontent").width(); $("#navcontent").animate({ 'right': '-' + navcontentwidth + 'px' }, 300, function () { $("#navcontent").hide(); }); $("#navlogo").fadeOut(300); }); $("#navcontent").click(function (e) { stopPropagation(e); }); $("#navclose").click(function (e) { var navcontentwidth = $("#navcontent").width(); $("#navcontent").animate({ 'right': '-' + navcontentwidth + 'px' }, 300, function () { $("#navcontent").hide(); }); $("#navlogo").fadeOut(300); }); </script> <script> function BaseShare(title, desc, imgUrl) { var link = "https://m.bdocx.com/doc/3680553.html"; if (wx) { wx.config({ debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。 appId: 'wx4f717640abfd1120', // 必填,公众号的唯一标识 timestamp: '1730774474', // 必填,生成签名的时间戳 nonceStr: '9778D5D219C5080B9A6A17BEF029331C', // 必填,生成签名的随机串 signature: '52c1ea91a05d60e0bf261569b19dea2f40b9395e',// 必填,签名,见附录1 jsApiList: ['onMenuShareAppMessage', 'onMenuShareTimeline', 'updateAppMessageShareData', 'updateTimelineShareData', 'hideMenuItems'] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2 //openTagList: ["wx-open-launch-weapp"]//H5打开小程序 }); wx.ready(function () { //需在用户可能点击分享按钮前就先调用 wx.hideMenuItems({// 要隐藏的菜单项,只能隐藏“传播类”和“保护类”按钮,所有menu项见附录3 menuList: ['menuItem:share:qq', 'menuItem:favorite', 'menuItem:share:QZone', 'menuItem:share:email', 'menuItem:originPage', 'menuItem:readMode', 'menuItem:delete', 'menuItem:editTag', 'menuItem:share:facebook', 'menuItem:share:weiboApp', 'menuItem:share:brand'] }); var shareData = { title: title, // 分享标题 desc: desc,//这里请特别注意是要去除html link: link, // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致 imgUrl: imgUrl, // 分享图标 }; wx.updateAppMessageShareData(shareData);//1.4 分享到朋友 wx.updateTimelineShareData(shareData);//1.4分享到朋友圈 }); } } function BaseShare(title, desc, imgUrl, link) { if (link=="") link = "https://m.bdocx.com/doc/3680553.html"; if (wx) { wx.config({ debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。 appId: 'wx4f717640abfd1120', // 必填,公众号的唯一标识 timestamp: '1730774474', // 必填,生成签名的时间戳 nonceStr: '9778D5D219C5080B9A6A17BEF029331C', // 必填,生成签名的随机串 signature: '52c1ea91a05d60e0bf261569b19dea2f40b9395e',// 必填,签名,见附录1 jsApiList: ['onMenuShareAppMessage', 'onMenuShareTimeline', 'updateAppMessageShareData', 'updateTimelineShareData', 'hideMenuItems'] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2 //openTagList: ["wx-open-launch-weapp"]//H5打开小程序 }); wx.ready(function () { //需在用户可能点击分享按钮前就先调用 wx.hideMenuItems({// 要隐藏的菜单项,只能隐藏“传播类”和“保护类”按钮,所有menu项见附录3 menuList: ['menuItem:share:qq', 'menuItem:favorite', 'menuItem:share:QZone', 'menuItem:share:email', 'menuItem:originPage', 'menuItem:readMode', 'menuItem:delete', 'menuItem:editTag', 'menuItem:share:facebook', 'menuItem:share:weiboApp', 'menuItem:share:brand'] }); var shareData = { title: title, // 分享标题 desc: desc,//这里请特别注意是要去除html link: link, // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致 imgUrl: imgUrl, // 分享图标 }; wx.updateAppMessageShareData(shareData);//1.4 分享到朋友 wx.updateTimelineShareData(shareData);//1.4分享到朋友圈 }); } } </script> <script> $(document).ready(function () { var arr = $(".headercontent"); for (var i = 0; i < arr.length; i++) { (function (index) { var url = "https://m.bdocx.com/header.aspx"; $.get(url + "?t=" + (new Date()).valueOf(), function (d) { try { arr.eq(index).empty().html(d); } catch (e) { } try { arr.html(d); } catch (e) { } }); })(i); } }); </script> <script src="https://mstatic.bdocx.com/js/jquery.lazyload.js"></script> <script charset="utf-8"> $("img.lazys").lazyload({ threshold: 200, effect: "fadeIn" }); </script> </body> </html>