MVC间传递消息

<button type="submit" class="btn btn-primary btn-lg">Register</button>

submit提交按钮会提交的是整个表单,数据目的地取决于

@using (Html.BeginForm("Register", "Register", FormMethod.Post))

tempdata的使用

[HttpPost]
		[ValidateAntiForgeryToken]
		public IActionResult Login(UserDto loginDto)
		{
			var login = _context.userInfos?.FirstOrDefault(l => l.Username == loginDto.Username && l.Password == loginDto.Password);
			if (login != null)
			{
				TempData["Username"] = login.Username;
				TempData["IsLoggedIn"] = true;

				return RedirectToAction("Main", "Main");
			}
			else
			{
				return Unauthorized("Login Failed!");
			}
		}

在登录方法中为tempdata添加username和isloggedin的值

@if (TempData["isLoggedin"] != null && (bool)TempData["isLoggedin"])
{
    <p>Welcome, @TempData["username"]!</p>
    <p>You are logged in.</p>
}

在主界面view中通过@键值显示tempdata中的值

TempData是一个键/值对的集合,用于在Controller之间传递数据。与ViewBag不同的是,TempData中的值只能被读取一次,读取后就会从集合中删除。

超链接的使用

<a href="@Url.Action("Index", "Register")" class="btn btn-secondary">Register</a>

@url.action也是第一个是action的名字,第二个是controller的名字

viewbag message的使用

public IActionResult ForgotPassword(UserDto userDto)
		{
			if (ModelState.IsValid)
			{
				var user = _context.userInfos.FirstOrDefault(u => u.Username == userDto.Username && u.Email == userDto.Email);
				if (user != null)
				{
					user.Password = userDto.Password;
					_context.SaveChanges();
					ViewBag.Message = "Password reset successfully.";
				}
				else
				{
					ModelState.AddModelError(string.Empty, "Username or email is incorrect.");
				}
			}

			return View("~/Views/Login.cshtml", userDto);
		}

在忘记密码中设置viewbag message的值

@if (ViewBag.Message != null)
{
    <div class="alert alert-success">@ViewBag.Message</div>
}

在login中通过@展示值
ViewBag.Message 的值可以有一个。它是一个动态属性,可以在控制器中设置,并在视图中访问。它通常用于在视图中显示一些短暂的消息,例如成功或失败的操作提示。当值被设置后,它将一直保持有效,直到被更新或页面被重新加载为止。如果您在控制器中多次设置 ViewBag.Message 的值,则它将以最后设置的值为准。

context中的

public DbSet<UserInfo>? userInfos { get; set; }

DbSet 是 Entity Framework Core 中的一个类,用于表示一组实体对象的集合。通过定义 DbSet 属性,可以让 Entity Framework Core 自动映射 UserInfo 类型到数据库中的表,并生成相应的 SQL 查询语句和数据操作语句,从而方便地进行数据库操作。可以让其他类(conrtroller)通过dbset userinfos修改数据库

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值