zoukankan      html  css  js  c++  java
  • 数迹学——Asp.Net MVC4入门指南(2):添加一个控制器

    自嘲一下。。。。。。万事还是得从官方的入门开始

          由于找不到适合新新手的MVC入门实例所以回过头来做一下微软的 《Asp.Net MVC4入门指南》。

    只有把自己放在太阳下暴晒,才知道自己有多菜!

          新手心得,万一有被看到,请指正

    一、Action方法的访问 (实质上就是调用某个Cotroller中的某个方法,这个方法可能有参数的)

    namespace MVCMovie.Controllers

    {
    public class HelloWorldController : Controller
    {
    //
    // GET: /HelloWorld/   从这里可以看到是一Get方式进行的访问
    public string Index()
    {
    return "This is my <b>default</b> action methord";
    }

    //
    //GET: /HelloWorld/Welcom   从这里可以看到是一Get方式进行的访问
    public string Welcome()
    {
    return "This is the welcome action methord";
    }
    }
    }

    一个HellowordController中有两个action(方法),通过/Control/action的形式去访问这两个方法,可以看到return后的字符内容

    图片1

    访问地址为/HelloWorld/   这里只有Controller的名字 没有Index这个方法,是因为路由中默认访问Index方法

    其实就是/HelloWord/Index

    图片2 

    对于不是路由中映射的默认方法的访问,访问格式为 /Controllername/actionname

    所以访问welcome方法,访问地址为/HelloWorld/Welcome

    图片3

    看到这个图了吗?Action方法也显示数据的,比如图1,图2,图片3中的Table就更说明了问题了

    不一定要放入View中(当然很不方便)

    这说明了MVC就是代码的拆分

    怎么拆分呢?微软的观点如下:

     MVC代表: 模型-视图-控制器 。MVC是一个架构良好并且易于测试和易于维护的开发模式。

     基于MVC模式的应用程序包含:

    · Models: 表示该应用程序的数据并使用验证逻辑来强制实施业务规则的数据类。

    · Views: 应用程序动态生成 HTML所使用的模板文件。

    · Controllers: 处理浏览器的请求,取得数据模型,然后指定要响应浏览器请求的视图模板。

    图片3的代码如下:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.Mvc;

    namespace MVCMovie.Controllers
    {
    public class HelloWorldController : Controller
    {
    //
    // GET: /HelloWorld/
    public string Index()
    {
    return "This is my <table border=1><tr><td><b>default</b></td></tr></table> action methord";
    }

    //
    //GET: /HelloWorld/Welcom
    public string Welcome()
    {
    return "This is the welcome action methord";
    }
    }
    }

     二、GET方式与action的交互(传递参数)

    /[Controller]/[ActionName]/[Parameters]

    访问地址:/HelloWorld/Welcome?name=Scott&numtimes=4

    代码:

    namespace MVCMovie.Controllers
    {
    public class HelloWorldController : Controller
    {
    //GET: /HelloWorld/Welcom

    public string Welcome(string name, int numTimes = 1) //numTimes如果传入的值不符合要求,或者没有传入则为1
    {

    return HttpUtility.HtmlEncode("Hello " + name + ", NumTimes is: " + numTimes);

    }
    }
    }

  • 相关阅读:
    asp.net导出数据到execl并保存到本地 不需要调用Office组件
    动态创建DataTable,GridView创建多表头,表头跨行或跨列合并,创建计算列及列内容自适应等
    Oracle内置SQL函数收集整理大全
    无比强大的GridView,表头固定,表体有滚动条可滚动
    很不错的asp.net文件上传类c# 搜索文件 移动文件 删除文件等
    【备用】非常不错的ASP操作数据库类,支持多数据库MSSQL,ACCESS,ORACLE,MYSQL等
    Asp.Net读取Execl常见问题收集
    经常用到的交叉表问题,一般用动态SQL能生成动态列
    C# asp.net中常见的字符串处理函数及数字格式化
    比较两个DataTable中不同的记录,且合并两个DataTable的列显示,有图
  • 原文地址:https://www.cnblogs.com/cnshuji/p/5430192.html
Copyright © 2011-2022 走看看