ASP.NET MVC3书店--第十节 为网站导航与局部设计做最后的修改(转)

news/2024/5/13 16:22:47/文章来源:https://blog.csdn.net/weixin_30410999/article/details/99830012
http://blog.sina.com.cn/s/blog_6ad539a90100rc4n.html

现在我们已经完成了这个网站中的主要功能。但我们还需要为整个网站的导航,首页与书籍列表页面做一点最终的修改。

10.1  创建购物摘要分部视图

    首先,我们想要在整个网站中显示用户购物车中的书籍数量,如图10-1所示。

ASP.NET <wbr>MVC3书店--第十节 <wbr>为网站导航与局部设计做最后的修改

图10-1 在整个网站中显示用户购物车中的书籍数量

    通过创建一个分部视图,然后在网站公用视图模板中使用这个分部视图,我们可以很容易地实现这个处理。

在购物车控制器(ShoppingCartController.cs)中使用一返回分部视图的CartSummary方法,代码如下所示。

//

// GET: /ShoppingCart/CartSummary

[ChildActionOnly]

public ActionResult CartSummary()

{

    var cart = ShoppingCart.GetCart(this.HttpContext);

 

    ViewData["CartCount"] = cart.GetCount();

    return PartialView("CartSummary");

}

    鼠标右击Views文件夹下的ShoppingCart文件夹,点击“添加视图”菜单项,将视图命名为“CartSummary”,选取“创建分部视图”复选框,如图10-2所示。

ASP.NET <wbr>MVC3书店--第十节 <wbr>为网站导航与局部设计做最后的修改

图10-2 添加购物摘要视图

    购物摘要视图非常简单,只显示一个到购物车视图的链接,链接文字为购物车中书籍的数量。完整的购物摘要视图(CartSummary.cshtml)文件中的代码如代码清单10-1所示。

    代码清单10-1 完整的购物摘要视图文件中的代码

@Html.ActionLink("书籍数量:

(" + ViewData["CartCount"] + ")",

    "Index",

    "ShoppingCart",

    new { id = "cart-status" })

    通过使用Html.RenderAction帮助器方法,我们可以在网站的任何视图中都嵌入一个分部视图,包括整个网站的公用视图模板中。 Html.RenderAction帮助器方法中需要指定一个action方法的名字(本例中为CartSummary)与控制器的名字(本例中为 ShoppingCart),代码如下所示。

@Html.RenderAction("CartSummary", "ShoppingCart")

    在将这个分部视图添加到整个网站布局之前,我们还需要创建一个书籍种类菜单,以避免对整个网站的公用视图模板作出多次修改。

10.2  创建种类菜单分部视图

    通过追加一个如图10-3所示的种类菜单分部视图,然后在该视图菜单中列出我们网站中的所有书籍种类,可以让用户更加方便地在我们的网站中进行书籍的挑选操作。

   ASP.NET <wbr>MVC3书店--第十节 <wbr>为网站导航与局部设计做最后的修改

图10-3 种类菜单分部视图

    我们采用与创建购物摘要视图相同的步骤来创建种类菜单分部视图,然后我们在网站公用视图模板中统一添加这两个分部视图。首先,在Store控制器(StoreController.cs文件)中追加GenreMenu方法,代码如下所示。

//

// GET: /Store/GenreMenu

[ChildActionOnly]

public ActionResult GenreMenu()

{

    var genres = storeDB.Genres.ToList();

    return PartialView(genres);

}

       这个方法返回网站中所有书籍种类的列表,该列表将被显示在接下来我们将要创建的种类菜单分部视图中。

    请注意:我们对这个方法使用了[ChildActionOnly]属性,概述性表示这个方法只被使用在分部视图中。这个属性确保不被直接通过访问 “/Store/GenreMenu”的方式来调用。对于分部视图来说,该属性是可选的,但是当我们想确保某个方法只被分部视图所调用时,该属性是被建议 使用的。当我们想要返回一个分部视图,而不是一个主视图时,该属性可以通知视图引擎不应该对这个视图使用任何布局,因为它是被嵌套在其他视图中的。

在GenreMenu方法中点击鼠标右键,使用Genre(书籍种类)模型类创建一个强类型的,名为GenreMenu的分部视图,如图10-4所示。

ASP.NET <wbr>MVC3书店--第十节 <wbr>为网站导航与局部设计做最后的修改

图10-4 创建种类菜单分部视图

    修改种类菜单分部视图中的代码,将所有书籍种类显示在列表中。

@model IEnumerable<MvcBookStore.Models.Genre>

<ul id="categories">

    @foreach (var genre in Model)

    {

        <li>@Html.ActionLink(genre.Name,"Browse", "Store",

new { id = genre.GenreId }, null)

        </li>

    }

</ul>

10.3 修改公用视图模板,显示分部视图

    我们可以通过调用Html.RenderAction()方法来在公用视图模板中添加我们的分部视图。这里我们同时添加两个分部视图,并添加一些附加的元素来显示它们,完整的公用视图模板中的代码如代码清单10-2所示。

    代码清单10-2 完整的公用视图模板中的代码

<!DOCTYPE html>

<html>

<head>

    <title>@ViewBag.Title</title>

    <link href="@Url.Content("~/Content/Site.css")"

rel="stylesheet" type="text/css" />

    <script

src="@Url.Content("~/Scripts/jquery- 1.4.4.min.js")"

type="text/javascript"></script>

</head>

<body>

    <div id="header">

        <h1><a href="/">ASP.NET MVC书店</a></h1>

        <ul id="navlist">

            <li class="first">

<a href="@Url.Content("~")" id="current">

首页

</a>

</li>

            <li>

<a href="@Url.Content("~/Store/")">

 

挑选书籍

</a>

</li>

            <li>

@{Html.RenderAction("CartSummary","ShoppingCart");}

</li>

            <li>

<a href="@Url.Content("~/StoreManager/")">

管理

</a>

</li>

        </ul>       

    </div>

<div>

@{Html.RenderAction("GenreMenu","Store");}

</div>

    <div id="main">

        @RenderBody()

    </div>

    <div id="footer">

        使用<a href="http://asp.net/mvc">ASP.NET MVC 3</a>开发

    </div>

</body>

</html>

    现在运行应用程序,我们可以在左边看见种类菜单导航条,在网页顶部看见购物摘要信息。

10.4 本教程总结

通过本教程,我们了解到使用ASP.NET MVC3,可以简化一个具有数据库访问功能、用户身份认证功能、AJAX功能等等的综合网站或Web应用程序的开发工作。希望通过本教程,你已经掌握了开发一个ASP.NET MVC网站或Web应用程序的基础工具。

转载于:https://www.cnblogs.com/quietwalk/archive/2011/07/05/2098180.html

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

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

相关文章

11个超炫的视差滚动网站欣赏

目前这种视差滚动效果被越来越多的国内外网站所应用&#xff0c;成为网页设计的热点趋势。 通过一个很长的网页页面&#xff0c;其中利用一些令人惊叹的插图 和图形&#xff0c;并使用视差滚动&#xff08;Parallax Scrolling&#xff09;效果&#xff0c;让多层背景以不同的速…

Avast!:小型网站最易遭受的3种黑客攻击

avast是捷克研发的杀毒软件&#xff0c;从网站上找到一篇avast关于网站安全的文章&#xff0c;觉得颇有意思&#xff0c;因此想到翻译过来与大家共享。有不对之处还望大家批评指正。 一个拥有上万访问者的小型网站管理员发来一份信&#xff0c;向我描述了他的遭遇&#xff0c;我…

Photoshop 爱好者应该收藏的42个网站

Photoshop 是 Adobe 公司旗下最为出名的图像处理软件之一&#xff0c;集图像扫描、编辑修改、图像制作、广告创意&#xff0c;图像输入与输出于一体的图形图像处理软件。今天&#xff0c;本文与大家分享42个非常有用的 Photoshop 设计教程和素材资源网站&#xff0c;希望能帮助…

DNN快速入门教程3 - 如何创建DotNetNuke网站

这个入门系列已经停了很长时间了&#xff0c;没有完成的原因是我有太多的东西想写但是自己又没有一个明确的主线。经过最近blog&#xff0c;和QQ群的反馈我突然意识到&#xff0c;这个入门系列就是要帮助大家从零开始完成一个自己的DNN5网站&#xff0c;不需要太过深入&#xf…

(转)SharePoint 2010的网站主题

从SharePoint 2003开始&#xff0c;主题就作为一种自定义SharePoint外观的重要选项。SharePoint 2003和2007中的包括一系列开箱即用的主题&#xff0c;可以被网站所有者通过SharePoint UI应用到SharePoint网站。网页设计师和开发人员可以创建包含自定义图片及CSS文件的自定义主…

自己动手搞定支付宝手机Wap网站支付接口 FOR ECShop

支付宝WAP网站版本的支付接口网上整合的比较少&#xff0c;看到很多网站在卖&#xff0c;顿觉无语。 主要是得自己查看支付宝官方提供的SDK中的开发文档。 支付宝sdk下载地址&#xff1a;https://doc.open.alipay.com/doc2/detail?treeId60&articleId103564&docType1 …

优秀网页设计:25个精美的旅游网站设计示例

旅游公司和旅行社的网站通常都会搭配非常有吸引力的精美照片&#xff0c;目的是为了突出视觉吸引力&#xff0c;获取更多的潜在客户。这篇文章向大家分享的25个精美的国外旅游网站设计作品&#xff0c;你可以从这些优秀的网站作品中学习大照片在网页背景中的应用以及制作出多彩…

大型网站系统架构分析

千万级的注册用户&#xff0c;千万级的帖子&#xff0c;nTB级的附件&#xff0c;还有巨大的日访问量&#xff0c;大型网站采用什么系统架构保证性能和稳定性&#xff1f; 首先讨论一下大型网站需要注意和考虑的问题。 数据库海量数据处理&#xff1a;负载量不大的情况下select、…

百度搜索引擎优化指南3.0_「百度SEO」百度推出的针对网站优化指南有哪些?第二篇...

一、面向搜索引擎的网站建设。搜索引擎只是网站上一个普通的访客&#xff0c;对网站的抓取方式、对网站/网页的价值判断&#xff0c;也都是从用户的角度出发的&#xff0c;任何对用户体验的改进&#xff0c;都是对搜索引擎改进。对搜索引擎的优化&#xff0c;同时也会让用户受益…

网站到底是什么?

网站到底是什么&#xff1f; 网站是由一个一个网页构成的&#xff0c;要想理解网站是什么&#xff0c;首先要理解网页是什么。 1. 什么是网页&#xff1f; 网页其实就是放在服务器上的一个文件&#xff0c;当我们浏览网页时&#xff0c;这个文件会被下载到我们本地的电脑&am…

无法访问此网站 localhost 拒绝了我们的连接请求。_PHP实战之WEB网站常见受攻击方式及解决办法...

一个网站建立以后,如果不注意安全方面的问题,很容易被人攻击,下面就讨论一下几种漏洞情况和防止攻击的办法跨站脚本攻击(XSS)跨站脚本攻击(XSS&#xff0c;Cross-site scripting)是最常见和基本的攻击WEB网站的方法。攻击者在网页上发布包含攻击性代码的数据。当浏览者看到此网…

PS网页设计教程XXIII——创建一个售卖iPhone 5应用程序的网站

作为编码者&#xff0c;美工基础是偏弱的。我们可以参考一些成熟的网页PS教程&#xff0c;提高自身的设计能力。套用一句话&#xff0c;“熟读唐诗三百首&#xff0c;不会作诗也会吟”。 本系列的教程来源于网上的PS教程&#xff0c;都是国外的&#xff0c;全英文的。本人尝试翻…

一些视频教程网站推荐

程序员是一个艰苦的职业&#xff0c;因为作为程序员总是要取追逐和学习日新月异的各种编程语言和技术&#xff0c;而也正是因为这样才让程序员的自学能力往往强于其它从事 其它职业的人员。程序员的会从各种渠道获得学习资源&#xff0c;包括书籍、博客、论坛、社区、搜索、交流…

mixamo网站_有了这个网站,3D模型在PPT中又进化了

相信大家也对3D模型也有了一定的了解今天继续跟大家介绍PPT中的3D如何把静态3D模型赋予动作场景即使你是个狠角色也只能乖乖接着奏乐接着舞值得一提的是这个转换网站大雄宝殿社群二群的成员推荐的我看了效果之后觉得很赞但一直觉得好像在哪儿见过后来想起来是大神Simon-阿文的微…

我也要谈谈大型网站架构之系列(1)——纵观历史演变(上)

转自&#xff1a;http://www.cnblogs.com/huangxincheng/p/3682008.html 我们知道一个网站都是随着业务的发展&#xff0c;逐渐演变成几万服务器&#xff0c;几亿用户数的大型网站&#xff0c;经历了若干年&#xff0c;甚至上十年的 发展成为大型网站&#xff0c;然而真正亲身经…

计算代码重复率_seo优化网站权重计算因子解析

前言&#xff1a;网站权重有点老生常谈了&#xff0c;所以只敢写个浅析&#xff0c;seoer最关心的是权重&#xff0c;操作最频繁却是天天更新文章&#xff0c;换友链&#xff0c;发外链&#xff0c;为什么要重复这些搬砖的过程&#xff1f;发表点不一样的看法和浅薄的经验&…

在网站开发中很有用的8个 jQuery 效果【附源码】

jQuery 作为最优秀 JavaScript 库之一&#xff0c;改变了很多人编写 JavaScript 的方式。它简化了 HTML 文档遍历&#xff0c;事件处理&#xff0c;动画和 Ajax 交互&#xff0c;而且有成千上万的成熟 jQuery 插件可供使用。看看下面这些惊人的功能和效果&#xff0c;我相信你会…

你应该知道的10个奇特的 HTML5 单页网站

网页设计师努力寻找新的方式来展现内容。其中一个大的趋势是单页网站&#xff0c;现在被世界上的一些大的品牌广泛采用&#xff0c;使用它们来为用户提供一个快速&#xff0c;干净和简单的而且​​美丽的网站。 下面是10个令人惊叹的单页 H​​TML5 的网站&#xff0c;涵盖了简…

ssm个人博客源码html,基于SSM个人博客网站管理系统

运行环境: 最好是jdk 1.8&#xff0c;我们在这个平台上运行的。其他版本理论上也可以。IDE环境&#xff1a; Eclipse,Myeclipse,IDEA都可以tomcat环境&#xff1a; 最好是Tomcat 7.x,8.x,9.x版本均可&#xff0c;理论上Tomcat版本不是太老都可以。&#xff0c;我们在这个环境上…

关于大型网站技术演进的思考(十九)--网站静态化处理—web前端优化—上(11)...

网站静态化处理这个系列马上就要结束了&#xff0c;今天我要讲讲本系列最后一个重要的主题web前端优化。在开始谈论本主题之前&#xff0c;我想问大家一个问题&#xff0c;网站静态化处理技术到底是应该归属于web服务端的技术范畴还是应该归属于web前端的技术范畴&#xff0c;要…