从控制器传值到视图的几种方式:
其中HttpContext.Session需要在Program.cs文件中注册使用。
ViewBag.UserA = "张三"; //使用:@ViewBag.User
ViewData["UserB"] = "李四"; //使用:@ViewData["UserB"]
TempData["UserC"] = "王五"; //使用:@TempData["UserC"]
HttpContext.Session.SetString("UserD", "赵六"); //使用:@Context.Session.GetString("UserD")
object UserE = "田七"; //使用:@Model
Program.cs文件:需要注册使用Session中间件,否则报错:
//表示整个应用程序,调用CreateBuilder方法创建一个WebApplicationBuilder对象
//初始化当前应用程序的管道容器
var builder = WebApplication.CreateBuilder(args);
//向管道容器添加注册中间件
//添加注册控制器视图中间件
builder.Services.AddControllersWithViews();
//添加注册Session中间件
builder.Services.AddSession();
//配置管道容器中间件,构造WebApplication实例
var app = builder.Build();
//判断是否是开发模式
if (!app.Environment.IsDevelopment())
//向管道中添加中间件,该中间件将捕获异常、记录异常、重置请求路径并重新执行请求
app.UseExceptionHandler("/Shared/Error");
//向管道中添加用于使用HSTS的中间件,该中间件添加了Strict Transport Security标头。默认值为30天
app.UseHsts();
//向管道添加Session中间件
app.UseSession();
//向管道添加用于将HTTP请求重定向到HTTPS的中间件
app.UseHttpsRedirection();
//向管道添加为当前请求路径启用静态文件服务
app.UseStaticFiles();
//向管道添加路由配置中间件
app.UseRouting();
//向管道添加鉴权中间件
app.UseAuthentication();
//向管道添加授权中间件
app.UseAuthorization();
//向管道添加默认路由中间件
app.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
//向管道添加启动应用程序中间件
app.Run();
控制器代码:
/// <summary>
/// Get请求
/// Home控制器的Index
/// </summary>
/// <returns>Index视图</returns>
[HttpGet]
public IActionResult Index()
ViewBag.UserA = "张三";
ViewData["UserB"] = "李四";
TempData["UserC"] = "王五";
HttpContext.Session.SetString("UserD", "赵六");
object UserE = "田七";
return View(UserE);
视图代码:
ViewBag.Title = "首页";
Layout = "~/Views/Shared/_Layout.cshtml";
@model string;
<h1>当前是Home/Index页</h1>
<table>
<thead>
<td>名称</td>
<td>数据</td>
</thead>
<tbody>
<td>UserA</td>
<td>@ViewBag.UserA</td>
<td>UserB</td>
<td>@ViewData["UserB"]</td>
<td>UserC</td>
<td>@TempData["UserC"]</td>
<td>UserD</td>
<td>@Context.Session.GetString("UserD")</td>
<td>UserE</td>
<td>@Model</td>
</tbody>
</table>
public int Id { get; set; }
public string Name { get; set; }
public double Price { get; set; }
原因>>用session是想验证 前端输入的验证码和后端存入seesion的是否一致,也可以使用的是TempData[]。
前端用GetValidateCode()方法拿到 RandomCode()方法生成的5个字符 的图片格式。
服务器session中直接拿到RandomCode()生成的5个字符
>>配置...
ASP.NET
Core
MVC
是一种用于构建Web应用程序的开发框架,具有轻量级、高扩展性和性能优越等特点。下面我将简要介绍
ASP.NET
Core
MVC
的入门到精通过程。
入门阶段:首先,你需要掌握C#编程语言和基本的Web开发知识。然后,你可以开始学习
ASP.NET
Core
MVC
的基本概念,包括请求-响应模型、
控制器
、
视图
和模型等。通过创建简单的应用程序,你可以了解到
ASP.NET
Core
MVC
的基本工作原理和
项目
结构。
进阶阶段:在掌握了基本概念后,你可以深入学习路由、过滤器、身份验证和授权等高级特性。此外,了解如何使用数据库和ORM(对象关系映射)框架与数据进行交互也十分重要。在这个阶段,你可以尝试开发更复杂的应用程序,并学习如何优化性能和处理错误。
精通阶段:在掌握了
ASP.NET
Core
MVC
的核心概念和高级特性后,你可以进一步提升你的技能。你可以学习如何使用
视图
组件、自定义标签帮助器和中间件等扩展
ASP.NET
Core
MVC
的能力。此外,学习如何进行单元测试和集成测试,以及如何使用日志记录和性能监控工具等也是非常有价值的。
总结起来,要将
ASP.NET
Core
MVC
从入门到精通,你需要通过实践来不断巩固你的知识,并深入研究不同的方面和扩展。除此之外,参与开发社区和读一些相关的技术书籍也是提高你的技能和认识的好途径。希望这些信息对你有所帮助。