zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    数据类型
    java基础
    Codeforces Round #655 (Div. 2) B. Omkar and Last Class of Math(数论)
    Codeforces Round #655 (Div. 2) A. Omkar and Completion(构造)
    LibreOJ
    QT入门-QMainWindow类
    WCF 请求与响应参数大小设置
    Python 代码性能优化技巧
    lists,tuples and sets of Python
    SQL Language
  • 原文地址:https://www.cnblogs.com/greatverve/p/1728942.html
Copyright © 2011-2022 走看看