ITPub博客

首页 > IT职业 > IT职场 > MVC学习二:基础语法

MVC学习二:基础语法

IT职场 作者:matador 时间:2021-09-09 09:44:49 0 删除 编辑

目录

一:重载方法的调用

二:数据的传递

三:生成控件

四:显示加载视图

五:强类型视图

六:@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
ViewData :  @ViewData["key"]
TempData  :  @TempData["temp"]
       强类型视图: @Model.CName

图片描述

 

这里要说的是,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() {     new SelectListItem() { Text = "值2", Value = "zhier" },    new SelectListItem() { Text = "值1", Value = "zhiyi" }});

 前台视图:

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

网页源码:

 

四:显示加载视图

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

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")
Response.Write:  这里输出到最上面了@{    Response.Write("Response.Write输出~");}

图片描述

 

页面源码:

图片描述

Response.Write输出~html>        setData    
        Html.Raw:        Html.Raw        
        Response.Write:  这里输出到最上面了

图片描述

 

七:视图中字符串的输入

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

1. 标签 2.@: 

图片描述

@{    字符串一}
字符串二
@{    @:字符串三}

图片描述

 

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

图片描述

     字符串一        
        字符串二        
            字符串三

图片描述

 

 

八:模板页

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

使用了模板页的视图:  

图片描述

@{    //标题    ViewBag.Title = "mby"; }

我使用了模板页

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

图片描述

 

模板页代码(_Layout.cshtml):

图片描述

html>            @ViewBag.Title    

模板页

    @RenderBody()    @RenderSection("hhh", required: false)  

图片描述

 

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/3589/viewspace-2806792/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2019-08-14

  • 博文量
    94
  • 访问量
    1104