Scott Guthrie 博客中文版

Scott Guthrie's Blog on ASP.NET and .NET (英文原版地址:http://weblogs.asp.net/scottgu)

   博客堂 :: 首页 :: 联系 :: RSS 2.0 ::
随笔 - 272, 评论 - 1623, 引用 - 436

导航

标签

每月存档

最新留言

广告

 

【原文地址】ASP.NET, HTML, JavaScript Snippet Support (VS 2010 and .NET 4.0 Series)
【原文发表日期】 Friday, September 04, 2009 2:12 AM

这是我针对即将发布的VS 2010 和 .NET 4所撰写的 贴子系列的第六篇。

今天的贴子讨论VS 2010中另一个非常有用的改进,即对HTML/ASP.NET/JavaScript snippet(代码片段)的支持。代码片段允许你创建一段代码和标识,然后只需最少量的字符键入就可很快地在你的应用中将其施用,从而使你在源码视图内更有效率。

Visual Studio在以前的版本中只在VB 和 C#中支持“代码片段”的概念,对HTML, ASP.NET标识和JavaScript则不支持。在VS 2010中,我们现在对这些内容也支持代码片段了。

使用ASP.NET 代码片段(Snippets)

让我们来做一个示范,看如何使用代码片段来很快地实现一个常见的涉及安全的场景。具体地来说,我们将实现在网站的右上方显示“[ Login ]” 链接或“[ Welcome UserName ]”消息(取决于用户是否已经登录)所需之功能:

step1

上面的功能是在你使用VS 2010中新的ASP.NET 项目起始模板创建项目时自动为你添加的。但为了这个示范的缘故,假定我们将从空白的母版页出发,完全从头建造起来。

一开始,在母版页中加一个标准的<div>元素,然后将光标放于其中间:

step2

我们将使用内置的<asp:loginview>控件来帮助实现我们的场景。<asp:loginview>控件是个模板化的控件(是在ASP.NET 2.0中最先引入的),允许我们轻松地在“Anonymous(匿名)” 和 “LoggedIn(已登录)”模板(取决于用户是否已被认证)自动显示之间转换。但我们不是将手工键入<asp:loginview>标识,而是将使用VS 2010中新的代码片段支持。

在编辑器中键入“<log”,将调出intellisense,显示以这些字符起始的元素,控件和代码片段。

step3

我们将从上面的列表中选择内置的“loginview”代码片段,按“tab”键来完成之:

step4

至此,我们选择了要使用的代码片段,我们可以再次按“tab”键来执行该代码片段,导致它立刻将代码片段名称替换成下面的标识。注意下面,该代码片段为我们加了新的<asp:loginview>控件,在其中自动地定义了2个最常用的模板。我们能够只用6次键击(键入“<log”击键4次,加2个tab键)就实现了上面的全部功能。

step5

现在我们来实现“AnonymousTemplate”。

在编辑器中键入“<a”,将调出intellisense,显示可为我们所用的元素和代码片段:

step6

我们将从上面的列表中选择内置的 “a” 代码片段,按“tab”键来完成。再按一次tab键,会执行该代码片段,导致它将代码片段名称替换成下面的标识:

step7

上面的“href”属性值和 <a> 元素中的内容被绿色背景高亮显示了。这表明这些值是可替换的参数,我们可以在填充它们的值时自动在它们之间来回tab,而避免使用光标键或按鼠标(从而提高了速度)。

不用移动光标或鼠标,我们就可以开始键入我们想要送用户去的登录网页的URL,假如他们在网站上还没被认证的话:

step8

完成之后,我们可以按“tab”键,VS会自动地在编辑器中为我们高亮显示第二个内容参数(不需手工移动光标或鼠标):

step9

然后我们可以键入我们想要显示的文字(再一次地,不用移动鼠标或按光标键):

step10

完成“<AnonymousTemplate>”之后,我们可以移到"<LoggedInTemplate>”。我们将在编辑器中键入“<log”,调出intellisense,选择内置的“loginname”代码片段:

step11

再按一次tab键会执行该代码片段,导致它替换成下面的标识:

step12

上面的“FormatString”属性值已经自动地为我们填充了默认的欢迎文字消息。其值还被自动地高亮显示了,万一我们想要做改动的话(而不必移动鼠标或光标键)。在这个例子中,我们将保留默认的文字。

最后的标识看上去象下面这样:

step13

当运行应用时,上面的标识在我们还没被认证时,会显示“[Login]”链接:

step19

在我们登录之后,我们将看到象下面这样的欢迎字符串:

step15

实现这个完整场景所用的总键击次数比我们以前手工键入所用的总键击次数的15%还要少。击键快的话,我发现我能在少于15秒钟内实现这个完整的场景, :-)。

ASP.NET MVC 代码片段(Snippets)

VS 2010为所有的ASP.NET控件和HTML标识元素提供了内置代码片段。

VS 2010也为常见的ASP.NET MVC视图场景,内置的ASP.NET MVC HTML辅助方法提供了内置的代码片段。

例如,我们可以在ASP.NET MVC视图中键入“<act” ,选择“actionlink” 代码片段:

step16

完成之后,按“tab”键,该代码片段会执行,导致它将片段名称换成下面的标识:

step17

注意,“linktext” 和 “actionname” 值被标记为代码片段参数,这意味着,我们可以不用使用光标键或按鼠标就可以轻松地将它们的值换掉。第一个参数linktext值是默认选择的,这意味着我们只要键入字符就可以马上替换其值,然后按tab键就可以马上选择和替换第二个参数actionname:

step18

自定义代码片段

Visual Studio 2010包含了超过200个内置的代码片段,这些片段在你安装它之后即可为你所用。

更棒的是,你不局限于仅使用内置的代码片段。你还可以轻松地创建你自己的代码片段(连带可置换的参数),可将它们导入2010,以及轻松地与其他开发人员分享。这方便你很快地自动化你自己的常做任务。

这篇文章描述了VS 2008中现有的代码片段支持,对如何创建和管理自定义代码片段提供了一些背景。

结束语

代码片段,是个非常有用的特性,能使你在编辑器内减少击键次数,允许你更快地完成场景和任务。现在代码片段不光在VB 和 C#启用了,也在HTML, ASP.NET 和 JavaScript文件中启用了,使得该功能更加有用, 使你工作起来更有效率。

希望本文对你有所帮助,

Scott

附注: 除了写博客外,最近我一直在使用Twitter发短贴和共享链接。你可以在Twitter上通过 http://www.twitter.com/scottgu (@scottgu是我的twitter名)跟随我。

打印 | 张贴于 2009-09-05 11:10:20 | Tag:ASP.NET  .NET  Visual Studio  Community News

留言反馈

#Gucci Shop 编辑

            If you want send shoes gift(eg. <strong><a href="http://guccihut.com/gucci-shoes/men-s-shoes/leather-dress-shoes">Gucci Leather Dress Shoes</a></strong>) to your boy friend,you should choose <i><a href="http://guccihut.com">Best Gucci Shoes</a></i>.See here,You can get <strong><a href="http://guccihut.com/gucci-shoes/men-s-shoes/leather-dress-shoes">Best Gucci men's dress shoes</a></strong> at http://GucciHut.com. I have placed order from <b><a href="http://guccihut.com/gucci-shoes/">Gucci Shoes Shop</a></b>, It is popular stores to find Gucci men's dress shoes on Gucci(GG) lead leather horsebit detail wingtip <a href="http://guccihut.com/gucci-shoes/men-s-shoes/loafers">Gucci loafers</a>. I love Hotter chic Gucci men reddish brown formal boots very much.You can get one easy online.Please check the <a href="http://guccihut.com/hotter-chic-gucci-men-reddish-brown-formal-boots">Gucci Leather men's brown boots</a> style from cool photo.
           

2010-06-25 09:30:52 | gucci shoes
#try 编辑

    [link=http://www.resumesplanet.com]resume[/link]"custom term papers":http://www.term-paper.biz/custom-term-paper.html    &link(essay writing,http://www.essayontime.com)   

2010-02-16 05:20:38 | islanguyen
#re:VS 2010 和 .NET 4.0 系列之《ASP.NET, HTML, JavaScript 代码片段支持》篇 编辑

[[research paper:http://www.research-service.com/custom-research-paper.html]][[essay writing services>http://www.bestessays.com.au/doc_essay.php]]

2010-02-16 05:19:49 | islanguyen
#re:VS 2010 和 .NET 4.0 系列之《ASP.NET, HTML, JavaScript 代码片段支持》篇 编辑

[[research paper:http://www.research-service.com/custom-research-paper.html]][[essay writing services>http://www.bestessays.com.au/doc_essay.php]]

2010-02-16 05:19:27 | islanguyen
#re:VS 2010 和 .NET 4.0 系列之《ASP.NET, HTML, JavaScript 代码片段支持》篇 编辑

Nice post. Perfect topic for my <a href="http://www.bestessays.com">writing services</a> online thanks!

2010-02-16 05:15:33 | islanguyen
#Re 编辑
Did you use the samples of a sociology essay service for your good enough article? I opine that you really have great research essay creating ability. Thank you very much for this!
2010-02-15 02:56:02 | Evie22Ch
#re:VS 2010 和 .NET 4.0 系列之《ASP.NET, HTML, JavaScript 代码片段支持》篇 编辑
2009-11-06 06:44:26 | billzwm
博客主人设置本博客不允许匿名用户发表言论,请登录后再试