Я делаю Вход на свой сайт, но его не работает. Регистрация работает успешно. Вот мой метод действияКак сделать вход в asp.net MVC4?
[HttpGet]
public ActionResult Index()
{
return View();
}
[HttpPost]
public ActionResult Index(Registration U)
{
Response.Write(U.Username); // it print the name but not go inside the condition
if (ModelState.IsValid)
{ // not come here why?
Response.Write("inin");
ModelState.Clear();
using (Database1Entities db = new Database1Entities())
{
var user = db.Registrations.Where(a => a.Username.Equals(U.Username) && a.Password.Equals(U.Password)).FirstOrDefault();
if (user != null)
{
Session["LoggedUserID"] = U.Id.ToString();
Session["LoggedUsername"] = U.Username.ToString();
return RedirectToAction("Update");
}
}
}
return View();
}
это RECIVED значение из поля зрения, что я проверил с помощью response.write (U.username) , но почему он не пришел в состоянии, если (modelstate.isvalid)?
вот мой взгляд
@model Final_Year_Project.Models.RegistrationMetaData
@{
Layout = null;
}
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>Index</title>
</head>
<body>
<div>
@using (Html.BeginForm("Index", "Home", FormMethod.Post))
{
@Html.AntiForgeryToken()
@Html.ValidationSummary(true)
@Html.LabelFor(a=>a.Username)
@Html.TextBoxFor(a=>a.Username)
@Html.ValidationMessageFor(a=>a.Username)
<br>
@Html.LabelFor(a=>a.Password)
@Html.TextBoxFor(a=>a.Password)
@Html.ValidationMessageFor(a=>a.Password)
<br>
<input type="submit" value="Login">
}
@section Scripts{
@Scripts.Render("~/bundles/jqueryval")}
</div>
</body>
</html>
Другая проблема заключается в его не показывают точки в поле пароля
я установил datatype.password в метаданных. он работает прямо в режиме регистрации.
Вот модель
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Web;
using System.Web.Mvc;
namespace Final_Year_Project.Models
{
[MetadataType(typeof(RegistrationMetaData)) ]
public partial class Registration
{
}
public class RegistrationMetaData
{
public int Id { get; set; }
[Required(ErrorMessage = "Please provide First name.", AllowEmptyStrings = false)]
[DataType(DataType.Text)]
public string Firstname { get; set; }
[Required(ErrorMessage = "Please provide Last name.", AllowEmptyStrings = false)]
[DataType(DataType.Text)]
public string Lastname { get; set; }
[Required(ErrorMessage = "Please provide User name.", AllowEmptyStrings = false)]
[DataType(DataType.Text)]
[Remote("IsAvailable", "Home", ErrorMessage = "This User name is already exist")]
public string Username { get; set; }
[Required(ErrorMessage = "Please provide Password.", AllowEmptyStrings = false)]
[DataType(DataType.Password)]
public string Password { get; set; }
//[NotMapped]
//[CompareAttribute("Password,",ErrorMessage="Confirm Password does not match")]
//[DataType(DataType.Password)]
//public string ConfirmPassword { get; set; }
[Required(ErrorMessage = "Please provide Email.", AllowEmptyStrings = false)]
[DataType(DataType.EmailAddress)]
public string Email { get; set; }
//[Required(ErrorMessage = "Please provide Date of birth.", AllowEmptyStrings = false)]
//[DataType(DataType.Date)]
//[DisplayFormat(DataFormatString = "")]
//public DateTime? DOB { get; set; }
[Required(ErrorMessage = "Please provide Gender.", AllowEmptyStrings = false)]
[DataType(DataType.Text)]
public string Gender { get; set; }
}
}
Это происходит потому, что модели не находится в правильном состоянии. Можете ли вы опубликовать его? –
Я опубликовал модель. –