一、在控制器中找到匹配视图,然后渲染成 HTML 代码返回给用户
cs
public class HomeController : Controller
{
public IActionResult Index()
{
return View(); //默认找 Views/Home/Index.cshtml ,呈现给用户
}
}
二、指定视图
1、控制器
cs
public class HomeController : Controller
{
public IActionResult Index()
{
return View("~/Views/Home/abc.cshtml");
}
}
视图有它自己的语法,这个语法就是 Razor语法
2、abc.cshtml 视图
cs
@{
string str = "字符串";
}
<h1>abc</h1>
<h3>@str</h3>
三、控制器给视图传递数据(强类型)
1、UserController 控制器 中 DoRegister 方法
cs
public class UserController : Controller
{
public IActionResult DoRegister(UserInfo userInfo)
{
if (ModelState.IsValid)
{
return View("~/Views/User/Detail.cshtml",userInfo);
}
}
}
2、创建 Detail.cshtml 视图
cs
@model FirstCoreMvc.Models.UserInfo
<h1>@Model.Name</h1>
四、控制器给视图传递数据(弱类型)
1、ViewData["键"]
HomeController.cs 控制器
cs
public class HomeController : Controller
{
public IActionResult Index()
{
var currentUser = new UserInfo() { Name="xiaoxiao",Password="1234"};
ViewData["currentuser"] = currentUser;
return View(); //默认找 Views/Home/Index.cshtml ,呈现给用户
}
}
视图使用
cs
@{
var currentUser = ViewData["currentuser"] as UserInfo;
}
<h1>@currentUser.Name</h1>
也可以在视图( Views/Home/Index.cshtml )中定义 @{ ViewData["Title"] = "Home Page"; } 在_Layout.cshtml 布局页面中使用。
2.ViewBag.键
控制器 如下:
ViewBag.currentTime = DateTime.Now.ToShortTimeString();
ViewBag.xiaowang= new UserInfo() { Name = "小王", Password = "1234" };
视图 如下:
<h1>@ViewData["currentTime"]</h1>
<h1>@ViewBag.currentTime</h1>
<h1>@ViewBag.xiaowang.Name</h1>