现在的位置: 首页 > 综合 > 正文

MVC自学入门小结

2013年09月04日 ⁄ 综合 ⁄ 共 1942字 ⁄ 字号 评论关闭

按自己的理解,总结下最近学习的MVC内容,错误的地方还希望各位高手指点

 

MVC其实原理

其流程为:URL(用户输入的地址)—>routes(路线地址加工寻找正确的地址)—>Controllers(控制器,用其内部的方法与名字相同的页面一一对应,这些方法统称Action)—>Models(获取数据库数据)—>View(返回页面)

 

M 即Model(模型层),主要负责出来业务逻辑以及数据库的交互
V 即View(视图层),主要用于显示数据和提交数据
C 即Controller(控制器),主要是用作捕获请求并控制请求转发

R 即页面地址解析是由routes来进行的

 

表单递交 

方法1.<% using (Html.BeginForm("Html", "Home"))//是HOME而不是HomeController

   { %>

    请输入用户名:<% =Html.TextBox("Name")%>

    请输入密码:<% =Html.Password("Name")%>

    <input id="Submit1" type="submit" value="submit" />

<%} %>

方法2.

<form id="form1" method="post" action="

<%=Html.AttributeEncode(Url.Action("Html","Beta")) %>">//Beta为控制器,Html为Action

 

</form>

传值

1.由控制器传值给页面:

Controllers方面(在相应的Action里):

ViewData["test"] = "HOLLE";

 

View方面(在需要输出的位置):

<div><% =Html.Encode(ViewData["test"])%></div>

 

2.由页面用表单传值给控制器:

方法1.自动映射

  使用这种方法,我们只需要把相应的Action方法的参数名字定义为控件的名称,ASP.NET MVC Framework将会自动帮助我们进行映射,直接把表单的数据赋值给form的Action所对应的方法参数上,

 

01 public ActionResult Test(string Textbox1,string Textbox2)//Textbox1,Textbox2为表单里控件的名称
02         {
03             if (Request.HttpMethod == "POST")
04             {
05                 ViewData["test"] = a;
06             }
07             else
08             {
09                 ViewData["test"] = aa;
10             }
11             return View();
12         }

方法2.窗体函数获取
String=Request.Form["Textbox1"];

 

HtmlHelper扩展

自定义一个类

01 using System;
02 using System.IO;
03 using System.Runtime.CompilerServices;
04 using System.Web;
05 using System.Web.Mvc;
06 using System.Web.Routing;
07   
08 namespace System.Web.Mvc.Html
09 {
10     public static class Test
11     {
12         public static void test(this HtmlHelper html,string names,string name,string value)
13         {
1 return string.Format("<label for='{0}'>{1}</label><br />", name, value);
1         }
2     }
3 }
4 对于这个类,我很奇怪其不是什么继承接口之类的,而是方法参数里加了个this HtmlHelper html就算是成了,没见过,很是不解。

return string.Format("<label for='{0}'>{1}</label><br />", name, value);这个就是直接创建自己想要的label标签以及参数

其原理是,先由一个类动态的加载上面的方法到HtmlHelper类里,然后可以自己在View页面里用Html.test("",""),动态生成HTML代码以及参数填充。

抱歉!评论已关闭.