.Net MVC浅尝辄止

MVC原理

MVC的基本思想是为了解耦。包括模型-视图-控制器

Model(模型)表示应用程序核心(比如数据库记录列表),程序中处理应用程序数据逻辑部分。

View(视图)显示数据,程序中处理数据显示的部分。

Controller(控制器)处理输入,程序中处理用户交互的部分。

MVCviaC#控制器

什么是控制器,从上面的描述可知控制器其实是为了响应用户的操作请求。传统使用WebForm编程的同学都知道在每一个aspx都有一个aspx.cs文件,在MVC中Controller就代表了这个aspx.cs的功能。

为什么使用控制器呢?第一个原因,在编写webform代码中我们的编写可能存在一个aspx.cs文件中不仅有接受用户请求的邀请而且可能包含一些js的处理,这时这个aspx.cs文件就不满足“单一职责”原则。第二个原因,现在的很多项目都是按照分层分模块去做的,使用Controller控制器就可以降低在编写用户请求的时候修改了View层的代码。第三个原因,如果不严格分离层编写代码,那么将来的业务逻辑代码、javascript代码等将会到处都是不易管理和维护。为了解决这些问题,ASP.NET MVC控制器应运而生,我们可以将具体的业务实现代码放入到控制器中而javascript代码放入到视图中,这样实现了表示层和业务逻辑层的完全分离。


MVCviaC#模型

从界面获取的数据将被装备到指定的模型当中,我们先看看如何获取客户端数据。

ASP.NET MVC在服务器端获取数据的方式

1.使用Request对象获取数据。

Request对象是ASP.NET的内置对象,包含了客户端传递过来的所有数据,比如Cookie、QueryString等等

取值就如:String value = Request["name"];

2.使用Model-Binding获取数据。

Model-Binding将具体的Controller方法与环境(Http Server)分开,是的可以对Controller方法进行测试。

例如:

public ActionResult Login(string name,string password){

return View();

}

只需要客户端传递的数据时:name=张三&password=123.那么上面相应的参数的name=张三,password=123

MVCviaC#视图和视图模式

1.使用WebFormsView风格编写视图

WedFormsView写法风格上面看过于复杂,很想早期的ASP语法。这种方式编写文件时.aspx,.ascx

1.<%: [代码块] %>

   用来输出一段经过HTML编码的数据。

   输入:<%:String.Format(“<p>你好!</p>”)%>

   结果:<p>你好</p>

2.<%=[代码块]%>

   用来输出一段未经过HTML编码的数据。

   输入:<%=String.Format(“<p>你好!</p>”)%>

   结果:你好

3.<% [代码块]%>

   在View上执行的一段代码。

   输入:<%foreach(vars in collection) { %>

                      <li><%:s%></li>

               <%}%>

结果:<li>..</li><li>…</li>………..

2.了解Razor风格编写视图的语法

Razor是一种简单的视图编写语法,后缀是.cshtml(C#).vbhtml(vb)

1.@[代码块]

  输入:@String.Format(“<p>你好</p>”)

  结果 :<p>你好</p>

2.@{[代码块]}

  输入:@foreach(vars in collection)
      {

                 <li>@s</li>
      }

  输出 :<li>….</li><li>…</li>….



MVCviaC#特性

1.MVC的Html和Ajax帮助器的用法

Html帮助器

       WebForms可以通过拖控件的方式进行前端的开发,这样可以帮助我们省很多的开发工作量。ASP.NET MVC也吸取了WebForms的这种开发方式,并把一些常用的功能封装到HtmlHelper类中,可以在View中使用Html属性访问,常见的几个函数如下:

      Html.Label(…)  //相当于输出Label控件

         Html.TextBox(..)  //相当于输出TextBox控件

         Html.DropDownList(…)  //相当于输出DropDownList控件

Ajax帮助器

       Ajax帮助器是为了能够简化Ajax操作而设计的,它的设计很像WebForms中存在的UpdatePanel控件,可以在View中使用Ajax属性访问,比较常用的方法如下:

        Ajax.BeginForm(…)    

        Ajax.HyperLink(…)


2.了解ASP.NETMVC强类型视图的优势

强类型视图    

         我们讨论了在View与Controller之间使用ViewData字典进行数据传递,但这样存在一个相当大的问题,也就是如果是拼写错误,可能会得不到任何值不易在编译时发觉。

         例如,我在Controller中设置了ViewData[“Name”]=“张三”,但我在View中却误写成ViewData[“Name1”]。这样,我们获取不到任何值。运行时也不报任何错误

         使用强类型视图就好多了,可以避免上述这种问题,而且还可以使用ASP.NETMVC提供的诸多特性以及智能提示等等。那么什么是强类型视图呢?

         强类型视图就是指,在View和Controller之间使用对象传输数据从而取代使用ViewData传值的方式。业界中,常常把这种传输对象叫做视图模型。可以使用View的Model属性访问视图模型。


这里只是MVC的简单学习,MVC开发模式是目前Web开发的主流,.NET的MVC具有很强的功能与处理,如果上面有些没有理解,请更贴共同讨论分享,共分享,同成长嘛



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Scalzdp

你的鼓励是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值