ASP.NETMVC--视图的示例分析

这篇文章给大家分享的是有关ASP.NET MVC--视图的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

创新互联专注为客户提供全方位的互联网综合服务,包含不限于成都网站设计、网站制作、外贸营销网站建设、乐陵网络推广、小程序设计、乐陵网络营销、乐陵企业策划、乐陵品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;创新互联为所有大学生创业者提供乐陵建站搭建服务,24小时服务热线:18982081108,官方网址:www.cdcxhl.com

理解视图

ASP.NET MVC与ASP.NET或者动态服务器页(ASP)不同,它并没有任何直接对应于一个页面的东西。在ASP.NET MVC应用程序中,磁盘上并没有一个页面来对应你在浏览器地址栏中输入的URL路径。在ASP.NET MVC应用程序中,最接近页面的东西是称为视图(View)的东西。

在ASP.NET MVC应用程序中,即将到达的浏览器请求被映射到了控制器动作。一个控制器动作可能会返回一个视图。然而,一个控制器动作可能执行某种类型的操作,例如将你重定向到另一个控制器动作。

代码清单1含有一个简单的控制器,叫做HomeController.HomeController暴露出了两个控制器动作,叫做指数()和详细信息()。

代码清单1 - HomeController.cs
使用系统; 使用 System.Collections.Generic; 使用 System.Linq; 使用 System.Web; 使用 System.Web.Mvc; 命名空间 MvcApp.Controllers{     [HandleError]     public class HomeController:Controller     {          public ActionResult Index()          {               return View();           }          public ActionResult Details()          {               return RedirectToAction( “Index”);           }     }}

你可以通过在浏览器的地址栏输入下面的URL,调用第一个动作,指数()动作:

/首页/索引

你可以通过在浏览器中输入这个地址,来调用第二个动作,细节()动作:

/主页/细节

指数()动作返回一个视图。你所创建的大多数动作都将返回一个视图,然而,动作可以返回任何类型的动作结果。例如,详细信息()动作返回了一个RedirectToActionResult,它可以将即将到达的请求重定向到指数()动作。

指数()动作包含了下面一行代码:

return View();

这行的代码返回了一个视图,该视图在服务器上的路径必须和下面的路径一样:

\查看\首页\的Index.aspx

视图的路径由控制器和控制器动作的名称推断得出。

如果你愿意,可以显式地指明视图下面一行代码返回了一个视图,名为“弗雷德”:

返回视图(“Fred”);

当执行这行代码时,将会从下面的路径返回一个视图:

\查看\首页\ Fred.aspx

2.创建一个视图

你可以在解决方案浏览器中的文件夹上点击右键,并选择菜单项“Add(添加)”,“新建项目”(如图1)。选择“MVC View Page”模板将标准视图添加到你的项目中。ASP.NET MVC--视图的示例分析

应该意识到你不能像ASP.NET或者ASP应用程序中那样,随意向项目中添加视图。你必须将视图添加到文件夹中,并且该文件夹的名称与控制器的名称相同(不含控制器后缀)举个例子,如果你想创建一个新的,叫做索引的视图,该视图可以由名为ProductController的的控制器返回,那么你必须添加这个视图到项目的如下文件夹中:

\查看\产品\ Index.aspx的

含有视图的文件夹的名称必须与返回该视图的控制器的名称相对应。

3.向视图中添加内容

一个视图是一个标准的,可以包含脚本的(X)HTML文档。你使用脚本来向视图中添加动态内容。

举个例子,代码清单2中的视图显示了当前的日期和时间。

代码清单2 - \ Views \ Home \ Index.aspx

<%@ Page Language =“C#”AutoEventWireup =“true”CodeBehind =“Index.aspx.cs”Inherits =“MvcApp.Views.Home.Index”%> 
<!DOCTYPE html PUBLIC“ - // W3C // DTD XHTML 1.0 Transitional // EN“”http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd“> 
 
     <头RUNAT = “服务器”> 
          索引</ TITLE> 
     </ HEAD> 
     <BODY> 
          <DIV> 
               的当前日期和时间是:
               <%回复于(DateTime.Now);%> 
          </ DIV> 
     </ body> 
</ html></pre><p>注意到代码清单2中的HTML页面的身体中含有下面的脚本:</p><pre><%Response.Write(DateTime.Now);%></pre><p>使用脚本分隔符<%和%>来标记脚本的开始和结束。这个脚本使用C#编写。它显示了当前的日期和时间,通过调用回复于()方法将内容呈现到了浏览器中脚本。分隔符<%和%>可以用于执行一条或者多条语句。</p><p>因为经常会调用回复于()方法,微软为你提供了一种调用回复于()的简单途径。代码清单3中的视图使用<%=和%>作为调用回复于()方法的简单途径。</p><p>代码清单3 - Views \ Home \ Index2.aspx</p><pre><%@ Page Language =“C#”AutoEventWireup =“true”CodeBehind =“Index2.aspx.cs”Inherits =“MvcApp.Views.Home.Index2”%> 
<!DOCTYPE html PUBLIC“ - // W3C // DTD XHTML 1.0 Transitional // EN“”http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd“> 
<html xmlns =”http://www.w3.org/1999/xhtml“> 
     <头RUNAT = “服务器”> 
          <TITLE>索引2 </ TITLE> 
     </ HEAD> 
     <BODY> 
          <DIV> 
               的当前日期和时间是:
               <%= DateTime.Now%> 
          </ DIV> 
     </ BODY> 
< / HTML></pre><p>你可以使用任何的.NET语言在视图中生成动态内容,可以使用Visual Basic.Net或者C#来编写你的控制器和视图。</p><p>4.使用HTML Helpers来生成视图内容</p><p>为了使向视图中添加内容更加容易一些,你可以利用叫做HTML Helper的东西.HTML Helper是一个生成字符串的方法。你可以使用HTML帮助者来生成标准的HTML元素,例如文本框,链接,下拉框和列表框。</p><p>举个例子,代码清单4中的视图利用了两个HTML Helpers,TextBox()和Password(),用于生成一个登录窗体(见图2)。</p><p>代码清单4 - \ Views \ Home \ Index3.aspx</p><pre><%@ Page Language =“C#”AutoEventWireup =“true”CodeBehind =“Index3.aspx.cs”Inherits =“MvcApp.Views.Home.Index3”%> 
<!DOCTYPE html PUBLIC“ - // W3C // DTD XHTML 1.0 Transitional // EN“”http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd“> 
<html xmlns =”http://www.w3.org/1999/xhtml“> 
     <head runat =“server”> 
          <title>登录表单</ title> 
     </ head> 
     <body> 
          <p> 
               <form method =“post”action =“/ Home / Login”> 
                    <label for =“userName” >用户名:</ label> 
                    <br />
                    <%= Html.TextBox(“userName”)%> 
                    <br /> <br /> 
                    <label for =“password”>密码:</ label> 
                    <br /> 
                    <%= Html.Password(“password” %> 
                    <br /> <br /> 
                    <input type =“submit”value =“登录”/> 
               </ form> 
          </ p> 
     </ body> 
</ html><br /> <%= Html.Password( “密码”)%> <br /> <br /> <INPUT TYPE = “提交”值= “登录”/> </ FORM> </ DIV> </ body> </ html><br /> <%= Html.Password( “密码”)%> <br /> <br /> <INPUT TYPE = “提交”值= “登录”/> </ FORM> </ DIV> </ body> </ html></pre><p><img src="/upload/otherpic66/28829.jpg" alt="ASP.NET MVC--视图的示例分析"></p><p>所有的HTML帮助者方法都在视图的Html属性上调。举个例子,你可以通过调用Html.TextBox()方法来呈现(render)一个文本框。</p><p>注意,当你在调用HTML Helper时,必须使用脚本分隔符<%=和%>。HTML Helper只是返回一个字符串你需要调用Response.Write()来将字符串呈现到浏览器中。</p><p>使用HTML帮助方法是可选的。它们通过减少你编写的HTML和脚本数量来使开发更为简单。代码清单5中的视图呈现了与代码清单4中完全相同的窗体,但是没有使用HTML助手。</p><p>代码清单5 - \ Views \ Home \ Index4.aspx</p><pre><%@ Page Language =“C#”AutoEventWireup =“true”CodeBehind =“Index4.aspx.cs”Inherits =“MvcApp.Views.Home.Index4”%> 
<!DOCTYPE html PUBLIC“ - // W3C // DTD XHTML 1.0 Transitional // EN“”http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd“> 
<html xmlns =”http://www.w3.org/1999/xhtml“> 
     <head runat =“server”> 
          <title>没有帮助的登录表单</ title> 
     </ head> 
     <body> 
          <p> 
               <form method =“post”action =“/ Home / Login”> 
                    <label for = userName“>用户名:</ label> 
                    <br />
                    <输入名称= “userName的”/> 
                    <br /> <br /> 
                    </标签>:密码<用于= “密码”的标签> 
                    <br /> 
                    <输入名称= “密码”类型= “密码”/> 
                    < br /> <br /> 
                    <input type =“submit”value =“登录”/> 
               </ form> 
          </ p> 
     </ body> 
</ html></标签> <br /> <输入名称= “密码”类型= “密码”/> <br /> <br /> <INPUT TYPE = “提交”值= “登录”/> </ FORM> < / p> </ body> </ html></标签> <br /> <输入名称= “密码”类型= “密码”/> <br /> <br /> <INPUT TYPE = “提交”值= “登录”/> </ FORM> < / p> </ body> </ html>/ body> </ html>/ body> </ html></pre><p>你可以创建自己的HTML帮助者。据个例子,你可以创建一个GridView()Helper方法,它自动地在一个HTML表格中显示一系列的数据库记录。我们将在创建自定义HTML帮助者这篇教程中探讨这一话题。</p><p>5.使用ViewData属性将数据传递给视图</p><p>你可以使用视图的另一个属性,ViewData的属性,将数据从控制器传递给视图。例如,代码清单6中的控制器向ViewData的添加了一条消息。</p><p>代码清单6 - ProductController.cs</p><pre>使用系统; 
使用System.Collections.Generic; 
使用System.Linq; 
使用System.Web; 
使用System.Web.Mvc; 
namespace MvcApp.Controllers 
{ 
     public class ProductController:Controller 
     { 
          public ActionResult Details()
          { 
               ViewData [“message”] =“Hello World!”; 
               return View(); 
          } 
     } 
}</pre><p>控制器的ViewData属性代表着一个名称/值对的集合。在代码清单6中,详细()方法向ViewData集合中添加了一个名为消息的项,其值为“Hello World!”当视图由详情()方法返回时,ViewData的将会自动传递给视图。</p><p>代码清单7中的视图从ViewData的中获取了消息,并且将消息呈现到了浏览器中。</p><p>代码清单7 - \ Views \ Product \ Details.aspx</p><pre><%@ Page Language =“C#”AutoEventWireup =“true”CodeBehind =“Details.aspx.cs”Inherits =“MvcApp.Views.Product.Details”%> 
<!DOCTYPE html PUBLIC“ - // W3C // DTD XHTML 1.0 Transitional // EN“”http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd“> 
<html xmlns =”http://www.w3.org/1999/xhtml“> 
     <头RUNAT = “服务器”> 
          <TITLE>产品详细信息</ TITLE> 
     </ HEAD> 
     <BODY> 
          <DIV> 
               <%=了Html.Encode(计算机[ “消息”])%> 
          </ DIV> 
     </ BODY > 
</ html></pre><p>注意到当前呈现消息时,视图利用了Html.Encode()Helper方法.Html.Encode()HTML Helper方法将例如“<”和“>”这样的特殊字符编码为在网页面中能够安全显示的字符。无论何时呈现用户提交到网站的内容时,你都应该对内容进行编码,以避免的JavaScript注入攻击。</p><p>(因为我们自己在ProductController的中创建了消息,所以并不是真的需要对消息进行编码。然而,当在视图中显示获取自的ViewData中的内容时,总是调用了Html.Encode()是一个很好的习惯。)</p><p>在代码清单7中,我们利用了的ViewData来将一个简单的字符串消息从控制器传递到了视图。你也可以使用的ViewData将其他类型的数据从控制器传递到视图,例如一个数据库记录集合。举个例子,如果你想要在视图中显示产品数据库表的内容,那么你可以将数据库记录的集合保存在ViewData的中进行传递。</p><p>你也可以从控制器向视图传递强类型查看数据。我们将在教程“理解强类型查看数据和视图”中探讨这个话题。</p><p>总结</p><p>这篇教程提供了对ASP.NET MVC视图,视图数据(查看数据)和HTML帮助者的一个简短的介绍。在第一部分,你学习了如何向项目中添加新的视图你学习了必须将视图添加到正确的文件夹中,以使其能够被特定的控制器调用。接下来,我们讨论了HTML帮助者这一主题。你学习了HTML帮助者是如何轻松地生成标准的HTML内容的最后,你学习了如何利用ViewData将数据从控制器传递给视图。</p><p>感谢各位的阅读!关于“ASP.NET MVC--视图的示例分析”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!</p>            
            
                                <br>
                    名称栏目:ASP.NETMVC--视图的示例分析                    <br>
                    路径分享:<a href="http://csdahua.cn/article/jppjgg.html">http://csdahua.cn/article/jppjgg.html</a>
                </div>
                <div class="view-qrocde cl">
                    <div class="m z"><img src="/Public/Home/images/ew.jpg"/></div>
                    <div class="text">
                        <h6>扫二维码与项目经理沟通</h6>
                        <p>我们在微信上24小时期待你的声音</p>
                        <p>解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流</p>
                    </div>
                </div>
                <div class="othernews cl">
                    <h3>其他资讯</h3>
                    <ul>
                        <li><a href="/article/ccsppp.html">tcpdump抓包分析详解-创新互联</a></li><li><a href="/article/ccsphd.html">javascript里的DOM知识分析-创新互联</a></li><li><a href="/article/ccspio.html">利用Java怎么对对象进行操作-创新互联</a></li><li><a href="/article/ccsped.html">怎样使用虚拟主机-创新互联</a></li><li><a href="/article/ccshoj.html">云计算的五大技术点+背景介绍-创新互联</a></li>                    </ul>
                </div>
            </div>
        </div>
        <div class="sidebar">
            <div class="tuijian">
                <a href="#">
                    <h2 class="cl"><span>行业动态</span></h2>
                    <h3>企业网站建设的重要性!</h3>
                    <p>现在虽然是移动互联网时代,但企业网站依然重要,包含PC站点,移动站。可以说企业网站关系企业的未来发展和前途,尤其对中小企业更是如此,一些中小企业老板,对自己的名片很在乎,因为这是个门面。...</p>
                </a>
            </div>
            <div class="ser sidesub">
                <h2>服务项目</h2>
                <ul class="ebox">
                    <li class="sub sub-1">
                        <div>
                            <h3>网站建设</h3>
                            <p></p>
                            <a class="btn" href="/serve/website/">查看详情</a>
                        </div>
                    </li>
                    <li class="sub sub-1">
                        <div>
                            <h3>移动端/APP</h3>
                            <p></p>
                            <a class="btn" href="/serve/moblie/">查看详情</a>
                        </div>
                    </li>
                    <li class="sub sub-1">
                        <div>
                            <h3>微信/小程序</h3>
                            <p></p>
                            <a class="btn" href="/serve/small/">查看详情</a>
                        </div>
                    </li>
                    <li class="sub sub-1">
                        <div>
                            <h3>技术支持</h3>
                            <p></p>
                            <a class="btn" href="/serve/tech/">查看详情</a>
                        </div>
                    </li>
                    <li class="sub sub-1">
                        <div>
                            <h3>其它服务</h3>
                            <p></p>
                            <a class="btn" href="/serve/othe/">查看详情</a>
                        </div>
                    </li>
                    <li class="sub sub-5">
                        <div>
                            <h3>更多服务项目</h3>
                            <p> <a>用我们的专业和诚信赢得您的信赖,从PC到移动互联网均有您想要的服务!</a></p>
                            <a class="btn" href="/serve/">获取更多</a>
                        </div>
                    </li>
                </ul>
            </div>
            <div class="contact" id="fix">
                <h2 class="cl"> <span>联系吧</span> <a href="https://map.baidu.com/" class="ditu" rel="nofollow" target="_blank">在百度地图上找到我们</a> </h2>
                <h3>电话:13518219792</h3>
                <p>如遇占线或暂未接听请拨:136xxx98888</p>
                <div class="qq"> <a href="//wpa.qq.com/msgrd?v=3&uin=244261566&site=qq&menu=yes" rel="nofollow" target="_blank">业务咨询</a> <a href="//wpa.qq.com/msgrd?v=3&uin=244261566&site=qq&menu=yes" rel="nofollow" target="_blank">技术咨询</a> <a href="//wpa.qq.com/msgrd?v=3&uin=244261566&site=qq&menu=yes" rel="nofollow" target="_blank">售后服务</a> </div>
            </div>
        </div>
        <script>
            //固定滚动
            (function () {
                var oDiv = document.getElementById("fix");
                var H = 120,
                    iE6;
                var Y = oDiv;
                while (Y) {
                    H += Y.offsetTop;
                    Y = Y.offsetParent
                };
                iE6 = window.ActiveXObject && !window.XMLHttpRequest;
                if (!iE6) {
                    window.onscroll = function ()
                    {
                        var s = document.body.scrollTop || document.documentElement.scrollTop;
                        if (s > H) {
                            oDiv.className = "contact  fixed";
                            if (iE6) {
                                oDiv.style.top = (s - H) + "px";
                            }
                        } else {
                            oDiv.className = "contact ";
                        }
                    };
                }

            })();
        </script>
    </div>
    <div class="footer">
        <div class="wp">
            <div class="wpss cl">
                <dl class="about">
                    <dt>网站制作</dt>
                    <dd><a href="https://www.cdxwcx.com/" target="_blank" title="成都网站制作">成都网站制作</a></dd><dd><a href="http://www.myzwz.com/" target="_blank" title="绵阳网站制作">绵阳网站制作</a></dd><dd><a href="http://www.cdxtjz.com/" target="_blank" title="网站制作">网站制作</a></dd><dd><a href="http://www.myzitong.com/" target="_blank" title="梓潼网站制作公司">梓潼网站制作公司</a></dd>                </dl>
                <dl class="about">
                    <dt>网站建设</dt>
                    <dd><a href="http://m.cdxwcx.com/" target="_blank" title="成都网站建设公司">成都网站建设公司</a></dd><dd><a href="http://chengdu.cdcxhl.cn/jianshe/" target="_blank" title="成都网站建设公司">成都网站建设公司</a></dd><dd><a href="http://chengdu.xwcx.net/mobile/" target="_blank" title="手机网站建设套餐">手机网站建设套餐</a></dd><dd><a href="https://www.cdxwcx.com/city/ziyang/" target="_blank" title="资阳网站建设">资阳网站建设</a></dd>                </dl>
                <dl class="about">
                    <dt>网站设计</dt>
                    <dd><a href="https://www.cdcxhl.com/pinpai.html" target="_blank" title="高端网站设计">高端网站设计</a></dd><dd><a href="http://m.cdcxhl.com/" target="_blank" title="成都网站设计">成都网站设计</a></dd><dd><a href="https://www.cdxwcx.com/" target="_blank" title="成都网站设计公司">成都网站设计公司</a></dd><dd><a href="http://www.cdkjz.cn/fangan/response/" target="_blank" title="响应式网站设计方案">响应式网站设计方案</a></dd>                </dl>
                <dl class="contact">
                    <dt>联系我们</dt>
                    <dd>电话:13518219792</dd>
                    <dd>邮箱:631063699@qq.com</dd>
                    <dd>地址:成都青羊区锦天国际1002号</dd>
                    <dd>网址:www.csdahua.cn</dd>
                </dl>
                <dl class="flow">
                    <dt></dt>
                    <div class="ma cl">
                        <div class="m"> <img src="/Public/Home/images/ew.jpg" />
                            <p>微信二维码</p>
                        </div>
                    </div>
                </dl>
            </div>
        </div>
        <div class="footer-link wp">
            <ul class="wpss cl">
                <li class="fisrt">友情链接</li>
                <li><a href="http://www.cdymzj.com/" title="网站空间" target="_blank">网站空间</a></li><li><a href="http://www.cdxwcx.cn/tuoguan/xiyun.html" title="成都移动服务器托管" target="_blank">成都移动服务器托管</a></li><li><a href="http://www.bjjike.cn/" title="红光高低压开关厂" target="_blank">红光高低压开关厂</a></li><li><a href="http://www.ndjierui.cn/" title="南部网站建设" target="_blank">南部网站建设</a></li><li><a href="http://www.qltuopan.com/" title="成都木托盘" target="_blank">成都木托盘</a></li><li><a href="https://www.cdcxhl.com/google.html" title="成都谷歌推广" target="_blank">成都谷歌推广</a></li><li><a href="http://www.cxjshr.com/" title="衣柜书柜酒柜定制" target="_blank">衣柜书柜酒柜定制</a></li><li><a href="http://www.jnxishu.com/" title="成都娃娃鱼" target="_blank">成都娃娃鱼</a></li><li><a href="http://www.cqcxhl.com/" title="重庆做网站" target="_blank">重庆做网站</a></li><li><a href="http://m.cdcxhl.cn/mobile/
" title="移动网站建设" target="_blank">移动网站建设</a></li>            </ul>
        </div>
    </div>
    <div class="bot-footer">
        <div class="wp">
            <p class="wpss"> <em>Copyright © 2002-2023 www.csdahua.cn 快上网建站品牌 QQ:244261566 版权所有</em> <em>备案号:<a href="http://beian.miit.gov.cn/" rel="external nofollow">蜀ICP备19037934号</a></em>
            </p>
            <p class="wpss" style="line-height:30px !important;"> </p>
        </div>
    </div>
    <div class="footer-kefu">
        <ul>
            <li class="qq"><a href="https://wpa.qq.com/msgrd?v=3&uin=244261566&site=qq&menu=yes"><em></em>在线咨询</a>
            </li>
            <li class="tel"><a href="tel:13518219792" target="_blank"><em></em>13518219792</a></li>
            <li class="wx"> <em></em>
                <div class="code"> <img src="/Public/Home/images/ew.jpg" />
                    <p>微信二维码</p>
                </div>
            </li>
            <li class="m"> <em></em>
                <div class="code"> <img src="/Public/Home/images/ew.jpg" />
                    <p>移动版官网</p>
                </div>
            </li>
            <li class="top"><em></em></li>
        </ul>
    </div>
    <script src="/Public/Home/js/all.js"></script>
</body>
</html>
<script>
    $(".cont img").each(function(){
        var src = $(this).attr("src");    //获取图片地址
        var str=new RegExp("http");
        var result=str.test(src);
        if(result==false){
            var url = "https://www.cdcxhl.com"+src;    //绝对路径
            $(this).attr("src",url);
        }
    });
    window.onload=function(){
        document.oncontextmenu=function(){
            return false;
        }
    }
</script>