asp.net MVC学习笔记一(第一个Routing第一个View第一个Action)

一直忙于做项目,一直没有机会认真学习一下新技术,今天突然兴致来了,
要把MVC与SilverLight入个门。学习了半天,悟出来一些基本道理,记录一下。
一、第一个Routing
代码:

代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Routing;

namespace FirstMVC
{
    
// Note: For instructions on enabling IIS6 or IIS7 classic mode, 
    
// visit http://go.microsoft.com/?LinkId=9394801

    
public class MvcApplication : System.Web.HttpApplication
    {
        
public static void RegisterRoutes(RouteCollection routes)
        {
            routes.IgnoreRoute(
"{resource}.axd/{*pathInfo}");

            
//新建一个Routing规则,这里要放在默认的规则前面,否则会先匹配默认的Routing
            routes.MapRoute(
               
"规则名称",//Routing规则名称
               "myurl",//这里你可以任意定义路径,通过http://localhost/myurl 就可以访问。
               new { controller = "Home", action = "MyView" }
            );

            
//这是默认生成的Routing
            routes.MapRoute(
                
"Default",                                              // Route name 
                
//参数规则,一般是:控制器名/动作名/参数
                "{controller}/{action}/{id}",                           // URL with parameters
                
//这里的默认参数,是指没有参数的时候,使用这些参数。比如http://localhost/ 相当于http://localhost/Home/Index
                new { controller = "Home", action = "Index", id = "" }  // Parameter defaults 
            );

        }

        
protected void Application_Start()
        {
            RegisterRoutes(RouteTable.Routes);
        }
    }
}

 

参考:http://www.0379zd.com/news/show/105001.htm

创建一个Route类实例,最关键的是为以下几个属性赋值:

属性名称               说明              
1.Constraints      获取或设置为 URL 参数指定有效值的表达式的词典。

举例:{controller}/{action}/{id}
2.DataTokens      获取或设置传递到路由处理程序但未用于确定该路由是否匹配 URL 模式的自定

义值。

举例:new RouteValueDictionary { { "format", "short" } }
3.Defaults           获取或设置要在 URL 不包含所有参数时使用的值。

举例:new { controller = "Home", action = "Index", id = "" }
4.RouteHandler   获取或设置处理路由请求的对象。

举例:new MvcRouteHandler()
Url 获取或设置路由的 URL 模式。 new { controller = @"[^\.]*" }

 

二、第一个View
直接在vs08解决方案下右击View文件夹,添加->View,没有反应。
据说是因为没有View模板,需要安装一个插件,暂时不管了。
直接把Index.aspx这个View复制一个,修改成MyView.aspx即可。如下:

 

代码
<%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master" AutoEventWireup="true" CodeBehind="MyView.aspx.cs" Inherits="FirstMVC.Views.Home.MyView" %>

<asp:Content ID="indexContent" ContentPlaceHolderID="MainContent" runat="server">
    
<h2>这是从Action传递过来的数据<%= Html.Encode(ViewData["Message"]) %></h2>
    
<p>
        To learn more about ASP.NET MVC visit 
<href="http://asp.net/mvc" title="ASP.NET MVC Website">http://asp.net/mvc</a>.
    
</p>
</asp:Content>
代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace FirstMVC.Views.Home
{
    
public partial class MyView : ViewPage
    {
    }
}

 

 

三、第一个Action
感觉Action相当于Page_Load事件,在页面输出前加载一些数据吧。
在这里执行业务逻辑,然后把执行后的数据发给View,如下:

 

 

代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Mvc.Ajax;

namespace FirstMVC.Controllers
{
    [HandleError]
    
public class HomeController : Controller
    {
        
public ActionResult Index()
        {
            ViewData[
"Title"= "Home Page";
            ViewData[
"Message"= "Welcome to ASP.NET MVC!";

            
return View();
        }

        
public ActionResult About()
        {
            ViewData[
"Title"= "About Page";

            
return View();
        }
        
/// <summary>
        
/// 我的第一个
        
/// </summary>
        
/// <returns></returns>
        public ActionResult MyView()
        {
            ViewData[
"Title"= "MyView Title";//这里的数据可以传递到View
            ViewData["Message"= "MyView Message";

            
return View();
        }
    }
}

 

 

注意这里每做一次修改,最好ctrl+shift+B生成一下,再刷新一下。

源码下载:https://files.cnblogs.com/greatverve/FirstMVC.rar

posted @ 2010-05-06 15:37  大气象  阅读(1037)  评论(12编辑  收藏  举报
http://www.tianqiweiqi.com