zoukankan      html  css  js  c++  java
  • MVC学习二:基础语法

    目录

    一:重载方法的调用

    数据的传递

    三:生成控件

    四:显示加载视图

    五:强类型视图

    六:@Response.Write() 和 @Html.Raw()区别

    七:视图中字符串的输入

    八:模板页

    一:重载方法的调用

    同一个控制器内的同名方法调用,可以用HttpGet 和HttpPost区分。

    [HttpGet]
    public void request(int id = 0)
    {
        Response.Write("get 请求成功~");
    }
    
    [HttpPost]
    public void request(Models.Classes c = null)
    {
        Response.Write("post 请求成功~取到值:" + c.CName + " " + c.CImg);
    }

    二:数据的传递

    控制器向视图传递数据的方法:

    1.ViewBag 2.ViewData 3.TempData 4.Model

    TempData 不允许添加重复的 key

    后台的赋值:

     //1.ViewBag
     ViewBag.bag = "ViewBagbag";
     //2.ViewData
     ViewData.Add("key", "viewdata");
     //3.TempData
     if (!TempData.Keys.Contains("temp"))
         TempData.Add("temp", "tempdata");  //不能重复 添加 相同的 键
     //4.Model
     Models.Classes cl = new Models.Classes() { CName = "model name" };  //数据
     return View(cl);

    前台的取值:

    ViewBag : @ViewBag.bag
    <br />
    ViewData :  @ViewData["key"]
    <br />
    TempData  :  @TempData["temp"]
    <br />       
    强类型视图: @Model.CName
    <br />

    这里要说的是,Model 类型的值  其实等效于  ViewData.Model

    //4.Model 
    ViewData.Model = new Models.Classes() { CName = "ViewData.Model" };
    //等效于
    Models.Classes cl = new Models.Classes() { CName = "model name" };  //数据
    return View(cl);

    三:生成控件

    前台视图 可以 通过 @Html.DropDownList 绑定后台ViewData数据 生成下拉框控件

    后台代码:

    ViewData.Add("myselect", new List<SelectListItem>() { 
        new SelectListItem() { Text = "值2", Value = "zhier" },
        new SelectListItem() { Text = "值1", Value = "zhiyi" }
    });

     前台视图:

    生成下拉框控件:@Html.DropDownList("myselect", "值一")

    网页源码:

    <select id="myselect" name="myselect"><option value="">值一</option>
    <option value="zhier">值2</option>
    <option value="zhiyi">值1</option>
    </select>

    四:显示加载视图

    视图加载可以分为 默认加载与控制器同名的 视图, 也可以显示加载自己指定的 视图。

    public ActionResult setData()
    {
        return View(); //加载默认 ActionResult 方法 同名的 视图 setData.cshtml
        //return View("Index");  // 显示加载 Index.cshtml 视图  注意:不要带后缀 .cshtml
    }

    五:强类型视图

    在视图页面 定义 model 强类型 ,这样可以方便 编译器 给出 只能提示 ,仅此而已。

    @model _1MVC学习.Models.Classes
    
    强类型视图: @Model.CName

    六:@Response.Write() 和 @Html.Raw()区别

    前台:

    Html.Raw:
    @Html.Raw("Html.Raw")
    <br />
    Response.Write:  这里输出到最上面了
    @{
        Response.Write("Response.Write输出~");
    }

    页面源码:

    Response.Write输出~
    
    
    <!DOCTYPE html>
    
    <html>
    <head>
        <meta name="viewport" content="width=device-width" />
        <title>setData</title>
    </head>
    <body>
        <div>
    
            Html.Raw:
            Html.Raw
            <br />
            Response.Write:  这里输出到最上面了

    七:视图中字符串的输入

    在视图页面Razor语法 输入 “纯”字符串 方法:

    1. <text>标签 2.@: 

    @{
        <text>字符串一</text>
    }
    <br />
    字符串二
    <br />
    @{
        @:字符串三
    }

    页面源码没有任何标签 包住

         字符串一
    
            <br />
            字符串二
            <br />
                字符串三

    八:模板页

    在添加视图的时候  选择 勾选 使用布局或模板页

    使用了模板页的视图:  

    @{
        //标题
        ViewBag.Title = "mby"; 
    }
    
    <h2>我使用了模板页</h2>
    
    @*
    这里是注释 @section 可以指定使用哪个“部分” 对应 模板页 的位置 @RenderSection("hhh", required: false) required 是否为必须填入 除了 @section 的其余部分 全部填充到 模板页的 @RenderBody() 位置 *@ @section hhh{ 我只是一个小坑而已啦~~~ }

    模板页代码(_Layout.cshtml):

    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="utf-8" />
        <meta name="viewport" content="width=device-width" />
        <title>@ViewBag.Title</title>
    
    </head>
    <body>
        <h1>模板页</h1>
        @RenderBody()
    
        @RenderSection("hhh", required: false)  
    </body>
    </html>

    说明:此类文章仅供本人学习记录使用。如有2B的错误,欢迎指出。不喜勿喷!

  • 相关阅读:
    庆祝 杀马下载量突破300万!
    智能实验室-杀马(Defendio) 4.26.0.940
    智能实验室-全能优化(Guardio) 4.992.0.900
    智能实验室-杀马(Defendio) 4.17.0.850
    目前为止功能最全的基于silverlight4(beta)的摄像头应用
    Discuz!NT负载均衡方案
    Discuz!NT跨站缓存同步
    Discuz!NT负载均衡解决方案(HA)之LVS(Linux Virtual Server)
    Discuz!NT企业版之Sphinx全文搜索(下)
    Discuz!NT千万级数据量上的两驾马车TokyoCabinet,MongoDB
  • 原文地址:https://www.cnblogs.com/zhaopei/p/4215323.html
Copyright © 2011-2022 走看看