添加视图
找到控制器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"]
结果
数据比较简单的时候,这么传没啥问题,但是处理逻辑比较复杂的数据,一般都用数据模型传。
标签:Index,ViewData,Layout,视图,Mvc,cshtml,传递数据 From: https://www.cnblogs.com/luyShare/p/17491832.html