Ich habe eine Website, wo ich die Benutzer entsprechend ihrer Rolle umleiten müssen. Bei einem Klick auf die Schaltfläche, wenn der Benutzer admin ist, Weiterleitung zu einer anderen Seite; sonst laden Sie die gleiche Seite neu. Beim Klicken auf die Schaltfläche wird die Indexseite geladen, unabhängig davon, wer sich anmeldet. Beim Debugging wurde festgestellt, dass das Attribut [HttpPost]
überhaupt nicht ausgelöst wird.HttpPost nicht ausgelöst
Ausblick:
@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 />
}
Controller:
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();
}
}
}
Wenn Sie dies debuggen, wie schlägt es fehl? Wie wird die Datenbankabfrage ausgeführt? Wie wird das Ergebnis in 'role' gespeichert? – David
Egal, welche 'empID' ich eingeben, mein Code überprüft nicht, ob es 'Rolle' ist, der Benutzer wird auf die' index'-Seite umgeleitet. Mein Code fragt die 'empID' ab und speichert die Rolle der 'empID', die in die Variable' role' eingegeben wurde. –
'" Mein Code prüft nicht auf seine Rolle "' - Also wird diese ganze Methode * überhaupt nicht ausgeführt *? Was wird dann * ausgeführt? Wo ist das * eigentliche Problem *? Sie müssen spezifisch sein, niemand kann hier für Sie debuggen. – David