C# MVC4:每次我尝试应用验证时,我都会得到一个答案:“我不知道怎么做。”;没有类型为';IEnumerable<;选择列表项>'&引用;
我看过许多其他堆栈溢出问题,有人报告了这个问题,但没有一个能帮上忙。但只有当我尝试对模型属性应用某种验证时,以及当我尝试强制执行该验证时(例如,将返回日期放在出发日期之前),才会出现错误。如果我选择了正确的值,它就会工作C# MVC4:每次我尝试应用验证时,我都会得到一个答案:“我不知道怎么做。”;没有类型为';IEnumerable<;选择列表项>'&引用;,c#,.net,asp.net-mvc,asp.net-mvc-4,razor,C#,.net,Asp.net Mvc,Asp.net Mvc 4,Razor,我看过许多其他堆栈溢出问题,有人报告了这个问题,但没有一个能帮上忙。但只有当我尝试对模型属性应用某种验证时,以及当我尝试强制执行该验证时(例如,将返回日期放在出发日期之前),才会出现错误。如果我选择了正确的值,它就会工作 public int Id { get; set; } [Required(ErrorMessage = "-Select-")] public string Departure { get; set; } [Required(ErrorMessage
public int Id { get; set; }
[Required(ErrorMessage = "-Select-")]
public string Departure { get; set; }
[Required(ErrorMessage = "-Select-")]
public string Arrivals { get; set; }
[Required(ErrorMessage = "Date Expected!")]
[DataType(DataType.Date)]
public System.DateTime DepartureDate { get; set; }
[Required(ErrorMessage = "Date Expected!")]
[DataType(DataType.Date)]
[GreaterThan("DepartureDate", ErrorMessage="Retrun date must be after departure date!")]
public System.DateTime ReturnDate { get; set; }
观点:
<p>From: </p>
@Html.DropDownList("Departures", ViewData["departures"] as List<SelectListItem>);
@Html.ValidationMessageFor(model => model.Departure, "Please choose a location");
<p>To: </p>
@Html.DropDownList("Arrivals", ViewData["arrivals"] as List<SelectListItem>);
@Html.ValidationMessageFor(model => model.Arrivals, "Please choose a location");
还有更多的。添加,这对到达者也是重复的
[HttpGet]
public ActionResult BookFlight()
{
// Check if the user is logged in, if not redirect to log in page
if (User.Identity.IsAuthenticated)
{
Departures.Add(new SelectListItem { Text="-Select-", Value="0" });
Departures.Add(new SelectListItem { Text = "London", Value = "London" });
Departures.Add(new SelectListItem { Text = "Manchester", Value = "Manchester" });
Departures.Add(new SelectListItem { Text = "Edinburgh", Value = "Edinburgh" });
Departures.Add(new SelectListItem { Text = "East Midlands", Value = "East Midlands" });
Departures.Add(new SelectListItem { Text = "Bristol", Value = "Bristol" });
ViewData["departures"] = Departures;
Arrivals.Add(new SelectListItem { Text = "-Select- ", Value = "0" });
Arrivals.Add(new SelectListItem { Text = "Paris", Value = "Paris" });
Arrivals.Add(new SelectListItem { Text = "Barcelona", Value = "Barcelona" });
Arrivals.Add(new SelectListItem { Text = "Madrid", Value = "Madrid" });
Arrivals.Add(new SelectListItem { Text = "Amsterdam", Value = "Amsterdam" });
Arrivals.Add(new SelectListItem { Text = "Prague", Value = "Prague" });
Arrivals.Add(new SelectListItem { Text = "Nice", Value = "Nice" });
Arrivals.Add(new SelectListItem { Text = "Milan", Value = "Milan" });
Arrivals.Add(new SelectListItem { Text = "Geneva", Value = "Geneva" });
Arrivals.Add(new SelectListItem { Text = "Rome", Value = "Rome" });
ViewData["arrivals"] = Arrivals;
return View();
}
else
return RedirectToAction("../User/LogIn");
}
[HttpPost]
public ActionResult BookFlight(FlightDetailsMD flights, FormCollection form)
{
Random rand = new Random();
Random rand2 = new Random();
if (ModelState.IsValid)
{
var departureVal = form["departures"];
var arrivalVal = form["arrivals"];
using (var db = new FlightDetailsEntities())
{
var user = db.FlightDetails.Create();
user.Id = rand.Next(100000, 199999) + rand2.Next(100000, 199999);
user.Departure = departureVal;
user.Arrivals = arrivalVal;
user.DepartureDate = flights.DepartureDate;
user.ReturnDate = flights.ReturnDate;
db.FlightDetails.Add(user);
db.SaveChanges();
MailMessage mail = new MailMessage();
mail.To.Add(User.Identity.Name);
mail.From = new MailAddress(User.Identity.Name);
mail.Subject = "Booking Confirmation";
string Body = "Email from: <i>insert company name</i><br><br> Your booking is confirmed! You are going to " + user.Arrivals +
" on " + string.Format("{0:dd/MM/yyyy}", user.DepartureDate) + " and returning to " + user.Departure + " on " + string.Format("{0:dd/MM/yyyy}", user.ReturnDate) +
".<br> Thank you for booking with us and we hope you have a nice time!" + "<br><h2>Reference #" + user.Id + "</h2>";
mail.Body = Body;
mail.IsBodyHtml = true;
//SmtpClient client = new SmtpClient();
using (SmtpClient client = new SmtpClient())
{
client.EnableSsl = true;
client.UseDefaultCredentials = false;
client.Credentials = new NetworkCredential(User.Identity.Name, "RecurveBow");
client.Host = "smtp.live.com";
client.Port = 587;
client.DeliveryMethod = SmtpDeliveryMethod.Network;
client.Send(mail);
}
/*
ViewData["departures"] = Departures;
ViewData["arrivals"] = Arrivals;
*/
/*
ViewData["departures"] = " ";
ViewData["arrivals"] = " ";
*/
return RedirectToAction("BookingDetails", "Home");
}
}
return View();
}
[HttpGet]
公共行动结果BookFlight()
{
//检查用户是否已登录,如果未登录,则重定向到登录页面
if(User.Identity.IsAuthenticated)
{
添加(新SelectListItem{Text=“-Select-”,Value=“0”});
添加(新的SelectListItem{Text=“London”,Value=“London”});
添加(新的SelectListItem{Text=“Manchester”,Value=“Manchester”});
添加(新的SelectListItem{Text=“Edinburgh”,Value=“Edinburgh”});
添加(新建SelectListItem{Text=“East Midlands”,Value=“East Midlands”});
添加(新的SelectListItem{Text=“Bristol”,Value=“Bristol”});
ViewData[“偏离”]=偏离;
Add(新SelectListItem{Text=“-Select-”,Value=“0”});
Add(新建SelectListItem{Text=“Paris”,Value=“Paris”});
Add(新的SelectListItem{Text=“Barcelona”,Value=“Barcelona”});
Add(新SelectListItem{Text=“Madrid”,Value=“Madrid”});
Add(new SelectListItem{Text=“Amsterdam”,Value=“Amsterdam”});
Add(新建SelectListItem{Text=“Prague”,Value=“Prague”});
Add(新建SelectListItem{Text=“Nice”,Value=“Nice”});
Add(新的SelectListItem{Text=“Milan”,Value=“Milan”});
Add(新的SelectListItem{Text=“Geneva”,Value=“Geneva”});
Add(新的SelectListItem{Text=“Rome”,Value=“Rome”});
ViewData[“到达”]=到达;
返回视图();
}
其他的
返回重定向操作(“../User/LogIn”);
}
[HttpPost]
公共行动结果BookFlight(航班详情SMD航班,表格收集表格)
{
Random rand=新的Random();
Random rand2=新的Random();
if(ModelState.IsValid)
{
var departureVal=表格[“偏离”];
var arrivalVal=表格[“arrivals”];
使用(var db=new flightdetailsenties())
{
var user=db.FlightDetails.Create();
user.Id=rand.Next(100000,199999)+rand2.Next(100000,199999);
user.department=departureVal;
user.Arrivals=arrivalVal;
user.DepartureDate=flights.DepartureDate;
user.ReturnDate=flights.ReturnDate;
db.FlightDetails.Add(用户);
db.SaveChanges();
MailMessage mail=新的MailMessage();
mail.To.Add(User.Identity.Name);
mail.From=新邮件地址(User.Identity.Name);
mail.Subject=“预订确认”;
string Body=“电子邮件发件人:插入公司名称
您的预订已确认!您将转到“+用户.到达”+
在“+string.Format”({0:dd/MM/yyyy}”,user.DepartureDate)+”上返回“+user.department+”,在“+string.Format”({0:dd/MM/yyyyy}”,user.ReturnDate)上返回到“+user.department+”+
“
感谢您与我们一起预订,希望您玩得愉快!”+“
参考”#“+user.Id+”;
mail.Body=Body;
mail.IsBodyHtml=true;
//SmtpClient=新的SmtpClient();
使用(SmtpClient=new SmtpClient())
{
client.enablesl=true;
client.UseDefaultCredentials=false;
client.Credentials=新的网络凭据(User.Identity.Name,“RecurveBow”);
client.Host=“smtp.live.com”;
client.Port=587;
client.DeliveryMethod=SmtpDeliveryMethod.Network;
客户端。发送(邮件);
}
/*
ViewData[“偏离”]=偏离;
ViewData[“到达”]=到达;
*/
/*
ViewData[“偏差”]=“”;
ViewData[“到达量”]=“”;
*/
返回重定向到操作(“预订详情”、“主页”);
}
}
返回视图();
}
做了一些更改。请查看:)
[HttpGet]
公共行动结果BookFlight()
{
//检查用户是否已登录,如果未登录,则重定向到登录页面
if(User.Identity.IsAuthenticated)
{
SetDepartureandArrival();
返回视图();
}
其他的
返回重定向操作(“../User/LogIn”);
}
公共作废SetDepartureandArrival()
{
添加(新SelectListItem{Text=“-Select-”,Value=“0”});
添加(新的SelectListItem{Text=“London”,Value=“London”});
添加(新的SelectListItem{Text=“Manchester”,Value=“Manchester”});
添加(新的SelectListItem{Text=“Edinburgh”,Value=“Edinburgh”});
添加(新建SelectListItem{Text=“East Midlands”,Value=“East Midlands”});
添加(新的SelectListItem{Text=“Bristol”,Value=“Bristol”});
ViewData[“偏离”]=偏离;
Add(新SelectListItem{Text=“-Select-”,Value=“0”});
[HttpGet]
public ActionResult BookFlight()
{
// Check if the user is logged in, if not redirect to log in page
if (User.Identity.IsAuthenticated)
{
Departures.Add(new SelectListItem { Text="-Select-", Value="0" });
Departures.Add(new SelectListItem { Text = "London", Value = "London" });
Departures.Add(new SelectListItem { Text = "Manchester", Value = "Manchester" });
Departures.Add(new SelectListItem { Text = "Edinburgh", Value = "Edinburgh" });
Departures.Add(new SelectListItem { Text = "East Midlands", Value = "East Midlands" });
Departures.Add(new SelectListItem { Text = "Bristol", Value = "Bristol" });
ViewData["departures"] = Departures;
Arrivals.Add(new SelectListItem { Text = "-Select- ", Value = "0" });
Arrivals.Add(new SelectListItem { Text = "Paris", Value = "Paris" });
Arrivals.Add(new SelectListItem { Text = "Barcelona", Value = "Barcelona" });
Arrivals.Add(new SelectListItem { Text = "Madrid", Value = "Madrid" });
Arrivals.Add(new SelectListItem { Text = "Amsterdam", Value = "Amsterdam" });
Arrivals.Add(new SelectListItem { Text = "Prague", Value = "Prague" });
Arrivals.Add(new SelectListItem { Text = "Nice", Value = "Nice" });
Arrivals.Add(new SelectListItem { Text = "Milan", Value = "Milan" });
Arrivals.Add(new SelectListItem { Text = "Geneva", Value = "Geneva" });
Arrivals.Add(new SelectListItem { Text = "Rome", Value = "Rome" });
ViewData["arrivals"] = Arrivals;
return View();
}
else
return RedirectToAction("../User/LogIn");
}
[HttpPost]
public ActionResult BookFlight(FlightDetailsMD flights, FormCollection form)
{
Random rand = new Random();
Random rand2 = new Random();
if (ModelState.IsValid)
{
var departureVal = form["departures"];
var arrivalVal = form["arrivals"];
using (var db = new FlightDetailsEntities())
{
var user = db.FlightDetails.Create();
user.Id = rand.Next(100000, 199999) + rand2.Next(100000, 199999);
user.Departure = departureVal;
user.Arrivals = arrivalVal;
user.DepartureDate = flights.DepartureDate;
user.ReturnDate = flights.ReturnDate;
db.FlightDetails.Add(user);
db.SaveChanges();
MailMessage mail = new MailMessage();
mail.To.Add(User.Identity.Name);
mail.From = new MailAddress(User.Identity.Name);
mail.Subject = "Booking Confirmation";
string Body = "Email from: <i>insert company name</i><br><br> Your booking is confirmed! You are going to " + user.Arrivals +
" on " + string.Format("{0:dd/MM/yyyy}", user.DepartureDate) + " and returning to " + user.Departure + " on " + string.Format("{0:dd/MM/yyyy}", user.ReturnDate) +
".<br> Thank you for booking with us and we hope you have a nice time!" + "<br><h2>Reference #" + user.Id + "</h2>";
mail.Body = Body;
mail.IsBodyHtml = true;
//SmtpClient client = new SmtpClient();
using (SmtpClient client = new SmtpClient())
{
client.EnableSsl = true;
client.UseDefaultCredentials = false;
client.Credentials = new NetworkCredential(User.Identity.Name, "RecurveBow");
client.Host = "smtp.live.com";
client.Port = 587;
client.DeliveryMethod = SmtpDeliveryMethod.Network;
client.Send(mail);
}
/*
ViewData["departures"] = Departures;
ViewData["arrivals"] = Arrivals;
*/
/*
ViewData["departures"] = " ";
ViewData["arrivals"] = " ";
*/
return RedirectToAction("BookingDetails", "Home");
}
}
return View();
}
[HttpGet]
public ActionResult BookFlight()
{
// Check if the user is logged in, if not redirect to log in page
if (User.Identity.IsAuthenticated)
{
SetDepartureandArrival();
return View();
}
else
return RedirectToAction("../User/LogIn");
}
public void SetDepartureandArrival()
{
Departures.Add(new SelectListItem { Text = "-Select-", Value = "0" });
Departures.Add(new SelectListItem { Text = "London", Value = "London" });
Departures.Add(new SelectListItem { Text = "Manchester", Value = "Manchester" });
Departures.Add(new SelectListItem { Text = "Edinburgh", Value = "Edinburgh" });
Departures.Add(new SelectListItem { Text = "East Midlands", Value = "East Midlands" });
Departures.Add(new SelectListItem { Text = "Bristol", Value = "Bristol" });
ViewData["departures"] = Departures;
Arrivals.Add(new SelectListItem { Text = "-Select- ", Value = "0" });
Arrivals.Add(new SelectListItem { Text = "Paris", Value = "Paris" });
Arrivals.Add(new SelectListItem { Text = "Barcelona", Value = "Barcelona" });
Arrivals.Add(new SelectListItem { Text = "Madrid", Value = "Madrid" });
Arrivals.Add(new SelectListItem { Text = "Amsterdam", Value = "Amsterdam" });
Arrivals.Add(new SelectListItem { Text = "Prague", Value = "Prague" });
Arrivals.Add(new SelectListItem { Text = "Nice", Value = "Nice" });
Arrivals.Add(new SelectListItem { Text = "Milan", Value = "Milan" });
Arrivals.Add(new SelectListItem { Text = "Geneva", Value = "Geneva" });
Arrivals.Add(new SelectListItem { Text = "Rome", Value = "Rome" });
ViewData["arrivals"] = Arrivals;
}
[HttpPost]
public ActionResult BookFlight(FlightDetailsMD flights, FormCollection form)
{
Random rand = new Random();
Random rand2 = new Random();
if (ModelState.IsValid)
{
var departureVal = form["departures"];
var arrivalVal = form["arrivals"];
using (var db = new FlightDetailsEntities())
{
var user = db.FlightDetails.Create();
user.Id = rand.Next(100000, 199999) + rand2.Next(100000, 199999);
user.Departure = departureVal;
user.Arrivals = arrivalVal;
user.DepartureDate = flights.DepartureDate;
user.ReturnDate = flights.ReturnDate;
db.FlightDetails.Add(user);
db.SaveChanges();
MailMessage mail = new MailMessage();
mail.To.Add(User.Identity.Name);
mail.From = new MailAddress(User.Identity.Name);
mail.Subject = "Booking Confirmation";
string Body = "Email from: <i>insert company name</i><br><br> Your booking is confirmed! You are going to " + user.Arrivals +
" on " + string.Format("{0:dd/MM/yyyy}", user.DepartureDate) + " and returning to " + user.Departure + " on " + string.Format("{0:dd/MM/yyyy}", user.ReturnDate) +
".<br> Thank you for booking with us and we hope you have a nice time!" + "<br><h2>Reference #" + user.Id + "</h2>";
mail.Body = Body;
mail.IsBodyHtml = true;
//SmtpClient client = new SmtpClient();
using (SmtpClient client = new SmtpClient())
{
client.EnableSsl = true;
client.UseDefaultCredentials = false;
client.Credentials = new NetworkCredential(User.Identity.Name, "RecurveBow");
client.Host = "smtp.live.com";
client.Port = 587;
client.DeliveryMethod = SmtpDeliveryMethod.Network;
client.Send(mail);
}
return RedirectToAction("BookingDetails", "Home");
}
}
SetDepartureandArrival();
return View();
}