ASP.net数据从Controller传递到视图

最常见的方式是使用模型或 ViewBag。

  1. 使用模型传递数据:

在控制器中,创建一个模型对象,并将数据赋值给模型的属性。然后将模型传递给 View 方法。

csharp 复制代码
public class HomeController : Controller
{
    public IActionResult Index()
    {
        // 创建模型对象
        var model = new MyModel();
        
        // 将数据赋值给模型的属性
        model.Name = "T";
        model.Age = 18;
        
        // 将模型传递给视图
        return View(model);
    }
}

在视图中,通过在视图顶部声明模型类型,并使用模型属性访问数据。

html 复制代码
@model MyModel

<h1>Welcome, @Model.Name!</h1>
<p>Your age is: @Model.Age</p>
  1. 使用 ViewBag 传递数据:

在控制器中,使用 ViewBag 对象将数据存储在动态属性中,并在视图中访问这些属性。

csharp 复制代码
public class HomeController : Controller
{
    public IActionResult Index()
    {
        // 使用 ViewBag 存储数据
        ViewBag.Name = "T";
        ViewBag.Age = 18;
        
        // 将数据传递给视图
        return View();
    }
}

在视图中,使用 ViewBag 对象访问控制器中设置的属性。

html 复制代码
<h1>Welcome, @ViewBag.Name!</h1>
<p>Your age is: @ViewBag.Age</p>

3.ViewData 对象。ViewData 是一个字典类型的属性,可以用于存储和传递数据。

在控制器中,使用 ViewData 将数据存储在字典中,并使用键值对的方式进行存取。

csharp 复制代码
public class HomeController : Controller
{
    public IActionResult Index()
    {
        // 使用 ViewData 存储数据
        ViewData["Name"] = "T";
        ViewData["Age"] = 18;
        
        // 将数据传递给视图
        return View();
    }
}

在视图中,通过键访问 ViewData 中存储的数据。

html 复制代码
<h1>Welcome, @ViewData["Name"]!</h1>
<p>Your age is: @ViewData["Age"]</p>

使用 ViewData 的优点是它是一个动态属性,存储任意类型的数据。在视图中访问 ViewData 时需要进行类型转换。

综上:

  1. 使用模型:创建一个模型对象,并将数据赋值给模型的属性,然后将模型传递给视图。

  2. 使用 ViewBag:使用 ViewBag 对象将数据存储在动态属性中,并在视图中访问这些属性。

  3. 使用 ViewData:使用 ViewData 字典将数据存储在键值对中,并在视图中通过键访问这些数据。

相关推荐
开开心心_Every7 天前
音频格式互转工具,支持Mp3ApeWavFlac互转
linux·运维·服务器·typescript·edge·pdf·asp.net
bugcome_com10 天前
【C# 数组详解】Array 定义、初始化、遍历、内存原理与面试高频问题
后端·c#·asp.net
铁甲前沿16 天前
一个月玩转MQTT(篇五:开发自己的MQTT WEB页面)
前端·mqtt·asp.net·mqtt web开发
weixin_4219947818 天前
依赖注入与中间件 - ASP.NET Core 核心概念
后端·中间件·asp.net
鱼是一只鱼啊19 天前
ASP.NET Core 集成腾讯云 COS 实现文件上传下载完整指南
云计算·asp.net·腾讯云·文件上传·cos
无风听海23 天前
.NET10之ASP.NET Core的Filter管线
java·asp.net·.net
William_cl23 天前
ASP.NET路由长度约束精讲:[HttpGet (“{name:minlength (3)}“)] 字符长度限制吃透,附避坑指南 + 实战代码
后端·asp.net
奥特曼打小白1 个月前
Microsoft SQL Server2025的下载、安装与配置——从环境、管理工具、配置管理器入手,解决VS2022ASP.NET网站项目中SqlDataSource控件找不到服务器的问题
sqlserver·asp.net
William_cl1 个月前
ASP.NET路由类型约束核心精讲:[HttpGet (“{id:int}“)] 整数约束吃透,附避坑指南 + 实战代码
后端·asp.net
步步为营DotNet1 个月前
深入理解ASP.NET Core Middleware:管道执行机制与高效应用
后端·asp.net