Asp.net MVC3基础

   最近开始接触Asp.net MVC, MVC即Model,Controller和View,通过看一些文档,明白了他的基本原理,这里保留下来作为笔记。

   MVC通过配置url routing将web request导入到相应的controller类中,通过Controller/Action/id的格式撰写,这不同于webform或winform的防止,不可以直接在属性窗口中设置启动页面或窗体,你需要在Global文件中谁知routes的启动Action. 例如你的Controller类名为Ajax,Action为Index,那么在Global的RegisterRoutes方法中写入:

  1. public static void RegisterRoutes(RouteCollection routes)  
  2. {  
  3.     routes.IgnoreRoute("{resource}.axd/{*pathInfo}");  
  4.   
  5.     routes.MapRoute(  
  6.         "Default"// Route name  
  7.         "{controller}/{action}/{id}"// URL with parameters  
  8.         new { controller = "Ajax", action = "Index", id = UrlParameter.Optional } // Parameter defaults  
  9.     );  
  10.   
  11. }  


你可以在Controller类中定义自己的Action,并通过Add View的方式添加对应的View,return View()将自动转入自己的View,如果你需要导入到其他的View中,使用RedirectToAction()方法,你也可以根据自己的需要设置参数。

 

View一般用于生成HTML代码, 你可以通过使用@字符写对应的语句(MVC3,MVC2应为<%%>),例子:

  1. <ul>  
  2. @for (int i = 0; i < ViewBag.NumTimes; i++)  
  3. {  
  4.     <li>ViewBag.Message</li>   
  5. }  
  6. </ul>  


Model为实体类,你可以建立自己的实体,如果你有自己的实体类时,可以在创建View的时候通过选生成强类型的view, 这包括基本的template可供选择,如Create,delete,edit,detail等形式,具体在Add View的对话框里可以找到,有了Model, 你可以在controller类中自由的操作model的实例,你也可以在View中使用,不过使用前需要在View中声明,并且使用@HTML.DisplayFor,EditFor,LabelFor等方法建立你需要表现的形式

  1. @model MvcApplication1.Models.Person  
  2.   
  3. @{  
  4.     ViewBag.Title = "Create";  
  5. }  
  6.   
  7. <h2>Create</h2>  
  8.   
  9. <script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>  
  10. <script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>  
  11.   
  12. @using (Html.BeginForm()) {  
  13.     @Html.ValidationSummary(true)  
  14.     <fieldset>  
  15.         <legend>Person</legend>  
  16.   
  17.         <div class="editor-label">  
  18.             @Html.LabelFor(model => model.Name)  
  19.         </div>  
  20.         <div class="editor-field">  
  21.             @Html.EditorFor(model => model.Name)  
  22.             @Html.ValidationMessageFor(model => model.Name)  
  23.         </div>  
  24.   
  25.         <div class="editor-label">  
  26.             @Html.LabelFor(model => model.Age)  
  27.         </div>  
  28.         <div class="editor-field">  
  29.             @Html.EditorFor(model => model.Age)  
  30.             @Html.ValidationMessageFor(model => model.Age)  
  31.         </div>  
  32.   
  33.         <p>  
  34.             <input type="submit" value="Create" />  
  35.         </p>  
  36.     </fieldset>  
  37. }  
  38.   
  39. <div>  
  40.     @Html.ActionLink("Back to List", "Index")  
  41. </div>  


 

传值方式:

通过ViewData["a"]=a;

进行简单传值,声明周期为View的生命周期,也支持传向不同的Routes

通过ViewBag

可以接收类实体的形式传值,对应Action中使用ViewBag.a=model; View中使用@Viewbag.a.modelfield显示

通过View参数形式

return View(model)如上面的例子

通过Html.BeginForm的方式

你需要在接收页面使用Request["controlID"]接收

通过url Get传值

同难过使用url?a=a的形式传入,在对应Action中使用Request.QueryString["a"]方式接收

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值