我有一个网站,我需要根据他们的角色重定向用户。点击按钮时,如果用户是管理员,则重定向到另一个页面;否则重新加载相同的页面。在按钮点击时,无论登录谁都会加载索引页。在调试时发现,[HttpPost]
属性根本没有被触发。HttpPost没有被触发
查看:
@model namespace.ViewModels.LoginVM
@{
ViewBag.Title = "Login";
}
<h1>User Login</h1>
@using (Html.BeginForm("Index", "Home", FormMethod.Post))
{
<br />
<div style="background-color: skyblue; width: 50%">
<div style="padding-left: 1em">
<div class="display-label" style="font-size: large">
Enter User Info<br />
<br />
</div>
<div>
<div class="editor-label">@Html.LabelFor(model => model.empID)</div>
<div class="editor-field">@Html.TextBoxFor(model => model.empID)
@Html.ValidationMessageFor(model => model.empID)
</div>
<br />
</div>
<br />
<div>
<input id="submit" type="submit" value="Submit" />
</div>
</div>
</div>
<br />
}
控制器:
public class LoginController : Controller
{
[HttpGet]
public ActionResult Login()
{
return View();
}
[HttpPost]
public ActionResult Login(LoginVM model)
{
MySQL msql = new MySQL();
var empID= model.empID
var role = msql.Select("Select `role` from empDB where `eID` = '" + empID + "'");
if(role == "admin")
{
return RedirectToAction("Index","Home");
}
else
{
return View();
}
}
}
当你调试这个,它是如何失败?什么是数据库查询正在执行? “角色”中存储的结果是什么? – David
无论我输入什么'empID',我的代码都不会检查它的'角色',用户会被重定向到'index'页面。我的代码查询'empID'并将输入'empID'的角色存储到变量'role'中。 –
'“我的代码没有检查它的作用” - 所以这个完整的方法并没有被执行*那么,*正在执行什么? *实际问题*在哪里?您需要具体说明,没有人可以为您进行调试。 – David