Step by Step WebMatrix网站开发之二:使用WebMatrix(3)

news/2024/5/18 13:23:55/文章来源:https://blog.csdn.net/weixin_33912453/article/details/93384508

      要学好用好一个工具,最好的办法是从模板入手,因而今天的任务就是从模板建立一个网站,然后分析一下模板的构成。

     在WebMatrix开始页,单击“从模板创建网站”,然后选择“面包店”,在网站名称中输入“我的面板店”,最后单击“确定”完成操作。

      创建过程完成后,单击运行按钮,会在浏览器看到如图1所示的页面。

1

图1

      单击“立即订购”,将看到图2所示的页面。

2

图2

      随便输入电子邮件和地址,然后单击“下订单”将看到如图3所示的页面。

3

图3

      除了关心页面的流程,还应留意一下页面的地址:

     http://localhost:9118

     http://localhost:9118/order/3

     http://localhost:9118/OrderSuccess?NoEmail=1

      IIS不用设置也可以实现跳转了。现在会WebMatrix,看看是如何做到的。

      单击文件菜单,看到如图4所示的文件和文件目录。可以看到,WebMatrix使用的Razor引擎,其文件扩展名是cshtml。

4

图4

      打开bin目录,会看到一个名称为Microsoft.Web.Helpers.dll的库文件,这就是微软新的Razor引擎库。

      熟悉ASP.NET开发的应该知道,APP_Data目录是放置数据库用的。Images目录不用说也知道是存放图片的,Styles是存放样式文件。

      先打开首页Default.cshtml文件,可看到以下代码:

@{
    Page.Title = "主页";
 
    var db = Database.Open("bakery");
    var products = db.Query("SELECT * FROM PRODUCTS").ToList();
    var featured = products[new Random().Next(products.Count)];
}
 
<h1>欢迎光临 Fourth Coffee!</h1>
10   
11  <div id="featuredProduct">
12      <img alt="特色产品" src="@Href("~/Images/Products/" + featured.ImageName)" />
13      <div id="featuredProductInfo">
14          <div id="productInfo">
15              <h2>@featured.Name</h2>
16              <p class="price">$@string.Format("{0:f}", featured.Price)</p>
17              <p class="description">@featured.Description</p>
18          </div>
19          <div id="callToAction">
20              <a class="order-button" href="@Href("~/order", featured.Id)" title="订购 @featured.Name">立即订购</a>
21          </div>
22      </div>
23  </div>
24   
25  <ul id="products">
26      @foreach (var p in products) {
27          <li class="product">
28              <div class="productInfo">
29                  <h3>@p.Name</h3>
30                  <img class="product-image" src="@Href("~/Images/Products/Thumbnails/"+ p.ImageName)" alt="@p.Name 图像" />
31                  <p class="description">@p.Description</p>                    
32              </div>
33              <div class="action">
34                  <p class="price">$@string.Format("{0:f}", p.Price)</p>
35                  <a class="order-button" href="@Href("~/order", p.Id)" title="订购 @p.Name">立即订购</a>
36              </div>
37          </li>
38      }
39  </ul>

     居然看不到通常页面需要Head和Body定义。语法也有点怪,呵呵,这是新的Razor语法,从下篇开始介绍。Head部分和body的定义其实还是有的。Razor引擎引入了ASP.NET母板页的概念,因而这些代码其实都在母板页里,文件名是_SiteLayout.cshtml,打开该文件将看到以下代码:

<!DOCTYPE html>
<html lang="en">
    <head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
        <meta charset="utf-8" />
        <title>Fourth Coffee - @Page.Title</title>
        <link href="@Href("~/Styles/Site.css")" rel="stylesheet" />
        <link href="@Href("~/favicon.ico")" rel="shortcut icon" type="image/x-icon" />
    </head>
10      <body>
11          <div id="page">
12              <div id="header">
13                  <p class="site-title"><a href="@Href("~/")">Fourth Coffee</a></p>
14                  <ul id="menu">
15                      <li><a href="@Href("~/")">主页</a></li>
16                      <li><a href="@Href("~/About")">关于我们</a></li>
17                  </ul>
18              </div>
19              <div id="body">
20                  @RenderBody()
21              </div>
22              <div id="footer">
23                  &copy;@DateTime.Now.Year - Fourth Coffee
24              </div>
25          </div>
26      </body>
27  </html>

       这就是页面的框架部分了,内容页的插入位置是语句“@RenderBody”,单词已经说明是干什么的了,渲染body。好处不用多说,页面中的共同部分通过模板页可重复使用,不用每个页面都修改一次。

      有一点要注意,带下划线(_)的文件是不能在页面直接访问的,例如你在浏览器打开_SiteLayout.cshtml文件,会看到如图5所示的错误页面。

5

图5

      _PageStart.cshtml文件的作用是在在页面运行前做一些初始化工作,例如,当前网站的_PageStart会知道模板页是那个:

@{
    Layout = "~/_SiteLayout.cshtml";
}

 

       这样,页面显示时就会将模板页和实际页面结合起来再显示。

       Razor引擎还要一个特殊文件_AppStart.cshtml,其作用是在网站启动的时候做一些初始化工作,与ASP.NET的Global.asax文件的Application_Start事件是一样。

      今天的介绍就到此。下次开始介绍Razor语法。

转载于:https://www.cnblogs.com/hainange/archive/2011/05/26/6334289.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_752595.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何真正提高ASP.NET网站的性能

前言怎么才能让asp.net网站飞得更快&#xff0c;有更好的性能&#xff1f;——这是很多开发者常常思考的一个问题。我有时候会做大量的测试&#xff0c;或请求别人帮忙采集一些数据&#xff0c;希望能够验证网上一些专家的建议或证明自己的一些猜想。理论上讲&#xff0c;我们希…

大型网站的可伸缩性架构如何设计?

2019独角兽企业重金招聘Python工程师标准>>> 1. 网站架构的伸缩性设计 1.1. 不同功能进行物理分离实现伸缩 纵向分离&#xff08;分层后分离&#xff09;&#xff1a;将业务处理流程上的不同部分分离部署&#xff0c;实现系统伸缩性。 横向分离&#xff08;业务分割…

浅谈千万级PV/IP规模高性能高并发网站架构

原创作者&#xff1a;老男孩linux实战运维培训机构 老男孩 QQ&#xff1a;31333741 说明&#xff1a;几个月前老男孩发过一次类似的文章&#xff0c;本次为了参加一个朋友邀请的活动&#xff0c;稍微完善了一下&#xff0c;欢迎各位同仁一起交流网站架构技术。 文章架构简图&…

在网站/博客中加入PDF、ppt等预览

2019独角兽企业重金招聘Python工程师标准>>> 使用Viewjs 使用方法很简单&#xff0c;首先当然是下载Viewjs了&#xff0c;2种方式&#xff0c;从github下载或者直接下载 下载后放到后台的根目录(当然也可以是其他目录)&#xff0c;在需要预览PDF的地方添加 <ifra…

向网页设计师推荐15个很棒的网站

网络上各种各样的社区网站数不胜数&#xff0c;但专注于创意设计的很少。今天这篇文章收集了15个非常好的专注于设计的网站推荐给设计师们&#xff0c;不管是学习先进的设计理念&#xff0c;还是寻找免费资源与工具&#xff0c;这些网站都是很不错的去处&#xff0c;记得推荐和…

mouseout、mouseover和mouseleave、mouseenter区别

mouseout、mouseover和mouseleave、mouseenter区别 结论&#xff1a; mouseenter&#xff1a;当鼠标移入某元素时触发。 mouseleave&#xff1a;当鼠标移出某元素时触发。 mouseover&#xff1a;当鼠标移入某元素时触发&#xff0c;移入其子元素时也会触发。 mouseout&#xff…

25个灵感来自大自然的优秀网站设计作品(转)

灵感是一种瞬间产生的富有创造性的突发思维状态&#xff0c;使我们能创造更加美好和独特的东西。对设计师来说&#xff0c;灵感来了意味着新的作品即将诞生。要说最能触及人的灵魂和艺术性的就是大自然了&#xff0c;它能刷新我们的思想&#xff0c;让我们的心情平静。这篇文章…

传统网站与Web标准——表格布局实例

步骤1&#xff1a; 一、效果 二、HTML <table border"0" cellspacing"0" cellpadding"0"><tr bgcolor"#220103"><td width"215" rowspan"2" colspan"2"><img src"mm_spa_pho…

利用vs2005发布asp.net网站到远程服务器上

早就知道vs2005中发布网站提供了多种方式,不过一直没深入研究,这次项目中正好用到,研究了下发布到"远程服务器上"的功能.首先要发布的时候,需要目标服务器上有对应的网站,否则会报如下图的错误:我们在目标服务器上建立完对应的网站后,并不能立即使用vs2005发布到该网…

使用Apache搭建Web网站服务器

使用Apache搭建Web网站服务器一&#xff1a;实验目标apache服务器常见概念apache服务器安装及相关配置文件例1&#xff1a;为公司内网搭建一个web服务器例2&#xff1a;使用rpm搭建lamp 环境例3&#xff1a;修改网根目录及对应参数&#xff0c;设置访问权限例4,&#xff1a;使用…

B2B行业网站“页面结构”分析及应用

B2B行业网站策划提供给网站设计师的策划文档里&#xff0c;一般都表明了每个部份的内容和功能所采用的页面结构&#xff0c;但是并不代表设计师就能理解策划者在页面结构方面的考虑&#xff0c;以及由于有的策划者对网络了解不太深入&#xff0c;或者说有一些疏忽&#xff0c;从…

《网络安全法》已经实施了,你的网站准备好了吗?

2019独角兽企业重金招聘Python工程师标准>>> 在网络安全格局国家化的大背景下&#xff0c;6月1日&#xff0c;我国《中华人民共和国网络安全法》终于正式施行了。虽然立法历程可谓一波三折&#xff0c;而且相比别的国家也着实不算早&#xff0c;但总算还是为未来的信…

有什么办法可以判断页面是静态还是动态?_静态网站怎么建设?有什么优势?

自网站建设以来&#xff0c;就存在静态网站和动态网站之分&#xff0c;对应的网站建设技术也不断迭代更新&#xff0c;静态网站主要的语言是HTML(超文本标记语言)或XML(可扩展标记语言)&#xff0c;下面小编来告诉你&#xff0c;静态网站怎么建设还有优势是什么。一、静态网站怎…

大型网站技术架构:核心原理与案例分析

大型网站技术架构&#xff1a;核心原理与案例分析 &#xff08;最接地气的网站架构经验&#xff0c;网站生存技术心要&#xff0c;应对大数据挑战的干货分享&#xff01;&#xff09; 李智慧 著 ISBN 978-7-121-21200-0 2013年9月出版 定价&#xff1a;59.00元 240页 16开 编辑…

雅虎48亿美元卖身Verizon,门户网站路在何方?

7月25日《华尔街日报》报道&#xff0c;Verizon以48亿美元的价格收购雅虎的核心业务&#xff0c;雅虎董事会已接受Verizon通讯的收购邀约&#xff0c;并在上周六下午将这一决定告知了其他竞购方&#xff0c;这场久拖不决的拍卖终于尘埃落定。 CEO玛丽莎梅耶尔自从上任以来一直在…

云服务器 ECS 建站教程:Drupal建站教程(CentOS7)

Drupal建站教程&#xff08;CentOS7&#xff09;Drupal是使用PHP语言编写的开源内容管理框架&#xff08;CMF&#xff09;&#xff0c;它由内容管理系统&#xff08;CMS&#xff09;和PHP开发框架&#xff08;Framework&#xff09;共同构成。它用于构造提供多种功能和服务的动…

云服务器 ECS 建站教程:ECS上搭建Docker(CentOS7)

ECS上搭建Docker(CentOS7)本文讲述Docker在CentOS系统上的部署过程。Ubuntu系统下安装docker&#xff0c;您可以点击此处查看。更多详细的实践您可以参考docker实践文档 适用对象 适用于熟悉Linux操作系统&#xff0c;刚开始使用阿里云ECS的开发者。 主要内容 部署dockerdocker…

python脚本根据cookies自动登录网站_Python爬虫利用cookie实现模拟登陆实例详解

Cookie&#xff0c;指某些网站为了辨别用户身份、进行session跟踪而储存在用户本地终端上的数据&#xff08;通常经过加密&#xff09;。 举个例子&#xff0c;某些网站是需要登录后才能得到你想要的信息的&#xff0c;不登陆只能是游客模式&#xff0c;那么我们可以利用Urllib…

网站统计中的数据收集原理及实现

网站数据统计分析工具是网站站长和运营人员经常使用的一种工具&#xff0c;比较常用的有谷歌分析、百度统计和腾讯分析等等。所有这些统计分析工具的第一步都是网站访问数据的收集。目前主流的数据收集方式基本都是基于javascript的。本文将简要分析这种数据收集的原理&#xf…

理解mouseover,mouseout,mouseenter,mouseleave

mouseover定义和用法 当鼠标指针位于元素上方时&#xff0c;会发生 mouseover 事件。 该事件大多数时候会与 mouseout 事件一起使用。 mouseover() 方法触发 mouseover 事件&#xff0c;或规定当发生 mouseover 事件时运行的函数。 注释&#xff1a;与 mouseenter 事件不同&…