专业网站建设品牌,十四年专业建站经验,服务6000+客户--广州京杭网络
免费热线:400-683-0016      微信咨询  |  联系我们

Net6入门MVC的传值的五种方式

当前位置:网站建设 > 技术支持
资料来源:网络整理       时间:2023/2/14 1:19:00       共计:3612 浏览

MVC从控制器传值到视图一共有五种方式


   ViewBag

   ViewData

   TempData

   Session

   Model


1,用VS2022新建一个基于.net6的MVC项目

2,添加一个控制器FirstController如下


public class FirstController : Controller

{

public IActionResult Index()

{

ViewBag.User1 = "张三";

ViewData["User2"]="李四";

TempData["User3"]="王五";

HttpContext.Session.SetString("User4", "赵六");

object User5 = "田七";

return View(User5);

}

}


 


3,添加对应的视图内容如下


<h1>This is First Index</h1>

<h2>User1=@ViewBag.User1</h2>

<h2>User1=@ViewData["User2"]</h2>

<h2>User2=@TempData["User3"]</h2>

<h2>User4=@Context.Session.GetString("User4")</h2>

<h2>User5=@Model</h2>


这个时候运行会报错,还要在Program.cs引入Session


需要在Program.cs添加如下两句


builder.Services.AddSession();

...

app.UseSession();


   

PS: Net6的项目没有了Setup.cs这个文件了, 并且Program.cs也是用新的语法写的

最终Program.cs代码如下


var builder = WebApplication.CreateBuilder(args);


// Add services to the container.

builder.Services.AddControllersWithViews();


builder.Services.AddSession(); //添加Session


var app = builder.Build();


// Configure the HTTP request pipeline.

if (!app.Environment.IsDevelopment())

{

   app.UseExceptionHandler("/Home/Error");

}


app.UseSession();//启用Session


app.UseStaticFiles();


app.UseRouting();


app.UseAuthorization();


app.MapControllerRoute(

   name: "default",

   pattern: "{controller=Home}/{action=Index}/{id?}");


app.Run();



运行项目, 打开http://localhost:5224/first/index就可以看到页码上显示的值了


类似这样:


This is First Index

User1=张三

User1=李四

User2=王五

User4=赵六

User5=田七

版权说明:
本网站凡注明“广州京杭 原创”的皆为本站原创文章,如需转载请注明出处!
本网转载皆注明出处,遵循行业规范,如发现作品内容版权或其它问题的,请与我们联系处理!
欢迎扫描右侧微信二维码与我们联系。
·上一条:Elasticsearch索引 | ·下一条:如何预呈现和集成 ASP.NET Core Razor 组件

Copyright © 广州京杭网络科技有限公司 2005-2024 版权所有    粤ICP备16019765号 

广州京杭网络科技有限公司 版权所有