ASP.NET MVC 数据传递进阶 从数据库拿到数据后的三种方式

目录

回顾
数据
显示

因为这个小练习有EF的一些东西,我们来回顾一下。

一。回顾

回顾一点EF的知识怎么生成数据库模型。

1.首先我们在Models文件夹右键添加新建项,在数据分栏下有ADO.NET实体数据模型。
在这里插入图片描述
修改完名称后点击添加按钮,选择第一个,来自数据库的EF 设计器,点击下一步
在这里插入图片描述
添加链接,如果不是你的想要的数据库,点击新建连接。
在这里插入图片描述
输入数据库服务器名称,选择你的数据库,点击确定
在这里插入图片描述
会更新你的链接字符串,点击下一步
在这里插入图片描述
选择你想要的表,点击完成,创建成功。
在这里插入图片描述

二。数据

我们先写一个方法,查询一下数据

public  static List<Users> users()
        {
            using (fashionshoppingDBEntities db=new fashionshoppingDBEntities())
            {
                return db.Users.ToList();
            }
        }

三。然后我们来进行数据显示,我们分成3个传递来进行。

1.ViewBag方式

在控制器调用users()方法,以ViewBag属性传到页面

public ActionResult Index()
        {
            ViewBag.users = users();
            return View();
        }

页面实现代码

h1> ViewBag 用户列表</h1>
        <ul>
            @foreach (var item in ViewBag.users)
            {
                <li>姓名:@item.username</li>
            }

        </ul>

效果展示展示
在这里插入图片描述

2.ViewData方式

在控制器调用users()方法,以ViewData属性传到页面

 public ActionResult Index()
        {
            ViewData["users"] = users();
            return View();
        }

页面实现代码

<h1>ViewData 用户列表</h1>
        <ul>
            @foreach (var item in ViewData["users"] as List<MVC_T2_1.Models.Users>) //导入了一个命名空间
            {
                <li>姓名:@item.username</li>
            }

        </ul>

效果展示展示
在这里插入图片描述

2.Model方式

在控制器调用users()方法,直接以View()方法直接传到页面

 public ActionResult Index()
        {
            return View(users());
        }

页面实现代码

<h1>Model 用户列表</h1>
        <ul>
            @foreach (var item in Model)
            {
                <li>姓名:@item.username</li>
            }

        </ul>

效果展示展示
在这里插入图片描述
显示都是一样的,具体就是看怎么传递数据,每个都有自己的特色,按自己需求来选择方式。

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
ASP.NET MVC 中,你可以通过以下步骤将注册页面的数据传递数据库: 1. 创建一个模型(Model)来表示你的注册数据。这个模型应该包含与注册页面的表单字段对应的属性。例如,如果注册页面有用户名、密码和电子邮件字段,你可以创建一个名为`RegisterViewModel`的模型,包含这些属性。 ```csharp public class RegisterViewModel { public string Username { get; set; } public string Password { get; set; } public string Email { get; set; } } ``` 2. 在你的控制器(Controller)中创建一个动作方法(Action),用于接收从注册页面提交的数据。你可以使用`HttpPost`特性来标记这个动作方法,以便它只响应 POST 请求。 ```csharp [HttpPost] public ActionResult Register(RegisterViewModel model) { // 在这里处理接收到的注册数据 // 将数据保存到数据库中 // 返回适当的视图或重定向到其他页面 } ``` 3. 在视图(View)上创建一个表单,将用户输入的数据提交到上述控制器动作方法。 ```html <form method="post" action="/ControllerName/Register"> <!-- 表单字段 --> <input type="text" name="Username" /> <input type="password" name="Password" /> <input type="email" name="Email" /> <input type="submit" value="注册" /> </form> ``` 4. 在控制器的注册动作方法中,你可以使用 Entity Framework 或其他数据库访问技术将注册数据保存到数据库中。这里以 Entity Framework 为例: ```csharp [HttpPost] public ActionResult Register(RegisterViewModel model) { if (ModelState.IsValid) { // 创建一个数据库上下文实例 using (var context = new YourDbContext()) { // 创建一个新的用户实体并设置属性 var user = new User { Username = model.Username, Password = model.Password, Email = model.Email }; // 将用户实体添加到数据库上下文中 context.Users.Add(user); // 保存更改到数据库 context.SaveChanges(); } return RedirectToAction("Index", "Home"); // 注册成功后重定向到首页或其他页面 } return View(model); // 如果数据验证失败,返回注册页面,显示错误信息 } ``` 在上述代码中,`YourDbContext`表示你的数据库上下文类,`User`表示你的用户实体类。这些类应该根据你的数据库结构行定义和调整。 这样,当用户在注册页面提交表单时,数据将被传递到控制器的注册动作方法中,然后通过数据库上下文将数据保存到数据库中。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值