c# - 登录后如何使用自己的 url 返回另一个视图,而不是在同一登录页面中加载?MVC
问题描述
我想重定向到欢迎页面,它应该根据用户类型显示/隐藏 html 元素。我已经写return View("Welcome", adminvar);
了,但它返回登录 URL 内的欢迎页面。
刷新后,它会显示重新提交表单的弹出警告。我想重定向到欢迎页面。我试过这个
return RedirectToAction("Welcome" , adminvar);
但它不起作用。
[HttpPost]
public ActionResult Login(tbl_Admin adminObj)
{
studentDBEntities db = new studentDBEntities();
var adminvar = db.tbl_Admin.Where(x => x.Email == adminObj.Email && x.Password == adminObj.Password).Select(s=> new tbl_AdminVM {
AdminId = s.AdminId,
Email = s.Email,
Name = s.Name,
Password = s.Password,
Type = s.Type
}).FirstOrDefault();
if (adminvar != null)
{
/* return RedirectToAction("Welcome" , adminvar);*/
return View("Welcome", adminvar);
}
else
{
return View();
}
}
public ActionResult Welcome()
{
ViewBag.Message = "Welcome Admin - Admin Account Page";
return View();
}
看法:
@if (Model.Type)
{
<center><p>@Html.ActionLink("Admin Management", "ListAdmin")</p></center>
}
解决方案
在这里,您将 Welcome View 返回到登录方法,该方法将在登录页面上呈现欢迎视图内容,并且不会重定向到欢迎页面。
您可以做的是,成功登录后,重定向到 Welcome Action。
return RedirectToAction("Welcome", new { userType = adminvar.Type });
并修改欢迎操作如下
public ActionResult Welcome(string userType)
在 Welcome 操作中获取 usertype 的值并使用 Viewbag 将其发送到 Welcome 视图。
ViewBag.userType = userType;
使用欢迎页面上 ViewBag.userType 的值来显示/隐藏 html 元素。
推荐阅读
- java - Java:ObjectMapper 在请求/响应后更改 Pojo 的值/结构
- r - 在 R 中的 highchart 中添加 x-label 空格
- node.js - 使用谷歌图表 API 和 node.js 设计一个 Web 界面来发送传感器数据
- c# - 将多个 CustomUserControl 模板组合成一个模板
- reactjs - 使用 react-pdf 处理未处理的拒绝(错误)获取 pdf 页面尺寸:传输被破坏
- javascript - 数据中的Vue.js调用方法
- node.js - client.login('TOKEN') 两次会导致问题吗?
- msgraph - 通过用户的加入 URL 获取 onlineMeeting
- mongodb - 没有从 MongoDB 收到重复的条目消息
- c++ - = 运算符导致内存丢失