zoukankan      html  css  js  c++  java
  • ASP.NET Core MVC中视图

    Views中的文件

    视图页(Index.cshtml)

    public IActionResult Index()
    {
         //返回当前视图页:
          return View();
    }
    
    
    public IActionResult Index()
    {
        //通过绝对路径访问其他视图页
        return View("~/Views/Home/Privacy.cshtml");
    }
    
    
    public IActionResult Index()
    { 
       //通过相对路径访问其他视图页(../表示返回上一层文件夹,../../表示返回上上一层文件夹,以此类推...)
       return View("../Views/Home/Privacy.cshtml");
    }

    分部视图(_ValidationScriptsPartial.cshtml)

    官网:https://docs.microsoft.com/zh-cn/aspnet/core/mvc/views/partial?view=aspnetcore-5.0

    分部视图的文件名通常以下划线 (_) 开头

    视图中使用:

    //视图中使用
    await Html.PartialAsync("_ValidationScriptsPartial")

    控制器中使用:


    public
    IActionResult OnGetPartial() {
    //跳转部分视图
    return PartialView("_ValidationScriptsPartial.cshtml"); }

    布局页(_Layout.cshtml)

    @{
        //引用布局页
        Layout = "_Layout";
       //不使用布局页
       //Layout = null;
    }

    默认情况下,每个布局必须调用 @RenderBody();表示呈现视图的内容;

    要让视图引擎忽略正文或节,请调用 IgnoreSection和 IgnoreBody方法。(注:这两个方法我在视图页中不知道怎么使用,有知道的告诉下。)

    节点:

    @section Scripts {
        <script type="text/javascript" src="~/scripts/main.js"></script>
        //调用分部视图
        <partial name="_ValidationScriptsPartial.cshtml" />
    }
    //异步调用"Scripts"
    @await RenderSectionAsync("Scripts", required: false)

    视图起始页(_ViewStart.cshtml)

    作用于当前文件夹下,在呈现每个视图之前运行代码;

    放在Views文件夹下,使Views文件夹下所有的视图都引用布局页;

    视图导入共享页(_ViewImports.cshtml)

    使Views文件夹下所有的视图文件共享引用的类型等等;作用于当前文件夹下;

     支持的指令:

    • @addTagHelper
    • @removeTagHelper
    • @tagHelperPrefix
    • @using
    • @model
    • @inherits
    • @inject

    向视图中传递数据

    想了解ViewMode、ViewData、ViewBag使用可以去官方地址看看

    https://docs.microsoft.com/zh-cn/aspnet/core/mvc/views/overview?view=aspnetcore-5.0#passing-data-to-views

    ViewMode传递多个类型

    public class Student
    {
       public string Name { get; set; }
       public int Age { get; set; }
       public string Sex { get; set; }
    }
    
    public class Teacher
    {
       public string Name { get; set; }
       public string Subject { get; set; }
    
    }

    控制器:

    public IActionResult Index()
    {
        var student = new Student()
        {
            Name = "zero",
            Age = 12,
            Sex = ""
        };
        var teacher = new Teacher()
        {
            Name = "王老师",
            Subject = "语文"
        };
        //传递多个类型(Tuple.Create最多支持8个)
        return View(Tuple.Create(student, teacher));
    }

    视图:

    @using AspNetCoreIOC.Models
    @model Tuple<Student, Teacher>
    <ul>
        <li>@Model.Item1.Name</li>
        <li>@Model.Item1.Age</li>
        <li>@Model.Item1.Sex</li>
    </ul>
    
    <ul>
        <li>@Model.Item2.Name</li>
        <li>@Model.Item2.Subject</li>
    </ul>

     

  • 相关阅读:
    JS之显式类型转换(最全)
    Python如何以两个字符一行方式输出"Hello World"
    封装localstorage为插件挂载到vue原型上
    封装localstorage 为方法
    input radio checkbox选中的c's's
    vue-插件 引用ali.JS,
    时间相加减
    mall-vue 门店版
    account.vue 以及continuePay.vue 通过action 里面的ajax后去支付
    service/axios.js
  • 原文地址:https://www.cnblogs.com/-zzc/p/14328031.html
Copyright © 2011-2022 走看看