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>

     

  • 相关阅读:
    URAL 2046 A
    URAL 2056 Scholarship 水题
    Codeforces Gym 100286I iSharp 水题
    Codeforces Gym H. Hell on the Markets 贪心
    Codeforces Gym 100286G Giant Screen 水题
    Codeforces Gym 100286B Blind Walk DFS
    Codeforces Gym 100286F Problem F. Fibonacci System 数位DP
    Codeforces Gym 100286A. Aerodynamics 计算几何 求二维凸包面积
    Codeforces Gym 100418K Cards 暴力打表
    Codeforces Gym 100418J Lucky tickets 数位DP
  • 原文地址:https://www.cnblogs.com/-zzc/p/14328031.html
Copyright © 2011-2022 走看看