如何检查已在ASP.NET MVC中输入@ Html.TextBox的价值,并将其与数据库中的值进行比较? 我想打一个简单的登录,并想看看是否已经在文本框中输入了值是一样的,在数据库
<tr><td>Username</td><td>:</td><td>@Html.TextBox("username", new { @value = ViewBag.username })</td></tr>
我试过的东西创建viewbag,然后将其取到控制器,但它没有似乎工作。
如何检查已在ASP.NET MVC中输入@ Html.TextBox的价值,并将其与数据库中的值进行比较? 我想打一个简单的登录,并想看看是否已经在文本框中输入了值是一样的,在数据库
<tr><td>Username</td><td>:</td><td>@Html.TextBox("username", new { @value = ViewBag.username })</td></tr>
我试过的东西创建viewbag,然后将其取到控制器,但它没有似乎工作。
创建这个特定的UI一个视图模型(一个简单的类)
public class LoginViewModel
{
[Required]
public string UserName { set;get;}
[Required]
[DataType(DataType.Password)]
public string Password { set;get;}
}
现在,在您的GET操作,创建这个类的一个对象,并发送至您的视图。
public ActionResult Login()
{
var vm=new LoginViewMode();
return View(vm);
}
现在我们的登录视图(Login.cshtml),这是强类型我们LoginViewModel,我们将使用TextBoxFor HTML辅助方法来使我们的文本框, UserName
和Password
的字段。
@model LoginViewModel
@using(Html.Beginform())
{
UserName
@Html.TextBoxFor(x=>x.UserName);
Password
@Html.TextBoxFor(x=>x.Password)
<input type="submit" />
}
这将使得它具有设置为action属性值的表单/YourCotnroller/Login
。 现在,我们需要有一个HttpPost操作方法来处理表单提交
[HttpPost]
public ActionResult Login(LoginViewModel model)
{
if(ModelState.IsValid)
{
string uName=model.UserName;
string pass=model.Password.
//Now you can use the above variables to check it against your dbrecords.
// If the username & password matches, you can redirect the user to
// another page using RedirecToAction method
// return RedirecToAction("UserDashboard")
}
return View(model);
}
public ActionResult UserDashboard()
{
//make sure you check whether user is logged in or not
// to deny direct access without login
return View();
}
尝试这样的:
在你的模型类中定义模型属性:
public class Login{
[Required]
[Remote("IsUserNameAvaliable", "Home")]
public string username{get;set;}
[Required]
public string password{get;set;}
}
该Remote
被放置会找到方法/与行动属性IsUserNameAvaliable
控制器名Home
。
远程服务器的属性为此,在MVC。
public JsonResult IsUserNameAvaliable(string username)
{
//Check if there are any matching records for the username name provided
if (_dbEntity.Users.Any(c => c.UserName == username))
{
//If there are any matching records found
return Json(true, JsonRequestBehavior.AllowGet);
}
else
{
string userID = String.Format(CultureInfo.InvariantCulture,
"{0} is not available.", username);
return Json(userID, JsonRequestBehavior.AllowGet);
}
}
现在,在你看来强类型的文本框
@model Application.Models.Login
@Html.TextBoxFor(m=>m.username)
@Html.ValidationMessageFor(m=>m.username)
DONOT忘记包括jQuery验证脚本。
@Scripts.Render("~/bundles/jquery")
@Scripts.Render("~/bundles/jqueryval")