.Net Core Mvc 2. VS2022 + Core6.0 + Mvc 添加视图,传递数据

发布时间 2023-06-19 18:10:40作者: luytest

添加视图

找到控制器HelloWorldController的叫Index的Action

在上面右键,选择添加视图,选择空,确认后会在Views文件夹下新建一个HelloWorld文件夹,并生成Index.cshtml文件。

直接运行

 可以看到Index视图有默认的头部内容和底部内容(太长了没截取),这个效果是在Views\Shared文件夹下的_Layout.cshtml布局文件中实现的。

在_Layout.cshtml文件中,指定@RenderBody()的位置显示视图的内容。

    <div class="container">
        <main role="main" class="pb-3">
            @RenderBody()
        </main>
    </div>

打开Views文件夹下的_ViewStart.cshtml

 

@{
    Layout = "_Layout";
}

 

这行代码指定将_Layout.cshtml应用到所有的Views下的视图中,可以设置为null,这样就不会引入_Layout.cshtml,也可以设置为你自己创建的布局文件。

当然我们也可以在HelloWorld\Index视图中指定Layout属性,来设置这个视图的布局页。

  

@{
    Layout = null;
    ViewData["Title"] = "Index";
}
<h2>Index</h2>
<p>Hello from our View Template!</p>

运行可以看到布局内容没有了。

 


 

传递数据

我们可以用ViewData 动态字典传递数据

 控制器

        public IActionResult Index()
        {
            ViewData["id"] = 1999;
            ViewData["name"] = "泰坦尼克号";
            return View();
        }

页面

<h2>Index</h2>
<p>Hello from our View Template!</p>
id = @ViewData["id"] <br />
name = @ViewData["name"]

结果

 数据比较简单的时候,这么传没啥问题,但是处理逻辑比较复杂的数据,一般都用数据模型传。