我有一個獨特的controller地方,我可以控制我的所有觀點,所以從這里我遇到了問題。在發送資料進行登錄后,我需要獲取發送的值。例如,我有這個控制器:HomeController,在這個控制器中我有四個ActionResult:
行動結果索引
操作結果登錄
動作結果庫塔
操作結果注銷
因此,當用戶登錄時,我需要在此處獲取用戶名以驗證是否已從我的資料庫連接
家庭控制器:
public class HomeController : Controller
{
public ActionResult Index()
{
return View();
}
public ActionResult Login(string uname, string psw)
{
try
{
ViewData["uname"] = uname;
ViewData["psw"] = psw;
ConexionSQL sql = new ConexionSQL();
var usuario = sql.login(uname, psw);
var existencia = sql.usuarioOCobrador(uname, psw);
if (existencia[0].usuario == "USUARIO")
{
var caracteres = Convert.ToString(psw);
var pruebaUsuario = sql.datos(uname);
if (pruebaUsuario[0].clave == caracteres)
{
return View("Cuotas", usuario);
}
else
{
ViewBag.Contra = "Contrase?a incorrecta.";
}
}
else if (existencia[0].usuario == "COBRADOR")
{
return RedirectToAction("Cuotas", "Home", usuario);
}
else
{
ViewBag.Usu = "Usuario incorrecto o usted no tiene los permisos para ingresar al sistema. Comuníquese con el área pertinente o el Departamento de Sistemas.";
}
}
catch (SqlException ex)
{
throw ex;
}
return View("Index");
}
public ActionResult LogOff(string uname)
{
ConexionSQL conexionSQL = new ConexionSQL();
conexionSQL.updateConectado(uname, false);
FormsAuthentication.SignOut();
Session.Abandon();
return RedirectToAction("Index", "Home");
}
public ActionResult Cuotas()
{
ConexionSQL sql = new ConexionSQL();
string uname = string.Empty;
string psw = string.Empty;
//Get your ViewData variables here
if (ViewData["uname"] != null)
{
uname = Convert.ToString(ViewData["uname"]);
}
if (ViewData["psw"] != null)
{
psw = Convert.ToString(ViewData["psw"]);
}
var usuario = sql.datosCob(uname);
if (usuario[0].conectado == false)
{
return RedirectToAction("Index", "Home");
}
else
{
return RedirectToAction("Cuotas", "Home");
}
}
}
索引視圖,這里是登錄:
<form class="modal-content animate" onsubmit="return control()" method="post" action="@Url.Action("Login", "Home")">
<div class="imgcontainer">
<span onclick="document.getElementById('id01').style.display='none'" class="close" title="Cerrar">×</span>
<img src="~/Images/00.png" alt="Logo" class="avatar"/>
</div>
<div class="container">
<label for="uname"><b>Usuario:</b></label>
<input type="text" id="uname" placeholder="Ingrese usuario..." name="uname" onkeypress="return soloLetras(event)"/>
<label for="psw"><b>Contrase?a:</b></label>
<input type="password" id="psw" placeholder="Ingrese contrase?a..." name="psw" onkeypress="return soloNumeros(event)"/>
<button type="submit">Iniciar sesión</button>
</div>
</form>
但uname總是null,我的代碼有什么問題?

uj5u.com熱心網友回復:
如果我理解正確,您需要uname先將您的方法發布到您的Login方法中,然后Cuotas在提交表單時在同一個請求中使用此變數?如果是這種情況,那么您必須使用Session將變數從一個控制器操作持久保存到另一個控制器操作。您的表單操作是Login方法而不是Cuotas方法,因此您FormCollection將始終為空。所以在你的情況下,它看起來像:
public ActionResult Login(string uname, string psw)
{
Response.AppendHeader("Cache-Control", "no-store");
try
{
//Set your variables here to passed to next action
Session["uname"] = uname;
Session["psw"] = psw;
ConexionSQL sql = new ConexionSQL();
var usuario = sql.login(uname, psw);
var existencia = sql.usuarioOCobrador(uname, psw);
if (existencia[0].usuario == "USUARIO")
{
var caracteres = Convert.ToString(psw);
var pruebaUsuario = sql.datos(uname);
if (pruebaUsuario[0].clave == caracteres)
{
sql.updateConectado(uname, true);
return RedirectToAction("Cuotas", "Home");
}
else
{
ViewBag.Contra = "Contrase?a incorrecta.";
}
}
else if (existencia[0].usuario == "COBRADOR")
{
sql.updateConectado(uname, true);
return RedirectToAction("Cuotas", "Home");
}
else
{
ViewBag.Usu = "Usuario incorrecto o usted no tiene los permisos para ingresar al sistema. Comuníquese con el área pertinente o el Departamento de Sistemas.";
}
}
catch (SqlException ex)
{
throw ex;
}
return View("Index");
}
你可以Cuotas像這樣在你的方法中得到它們:
public ActionResult Cuotas()
{
ConexionSQL sql = new ConexionSQL();
string uname = string.Empty;
string psw = string.Empty;
//Get your ViewData variables here
if (Session["uname"] != null)
{
uname = Convert.ToString(Session["uname"]);
}
if (Session["psw"] != null)
{
psw = Convert.ToString(Session["psw"]);
}
var usuario = sql.datosCob(uname);
if (usuario[0].conectado == false)
{
return RedirectToAction("Index");
}
else
{
return View("Cuotas");
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/443584.html
