мне нужна ваша помощь, у меня есть проблема с проверкой с использованием AdataAnnotationКак проверить выпадающий список с помощью DataAnnotation?
Я пытаюсь проверить выпадающий список, используя его, но есть некоторые проблемы с этим
это мой код
Вид сбоку
@using (Html.BeginForm("addNewProject", "Activities", FormMethod.Post))
{
@Html.AntiForgeryToken()
@Html.ValidationMessage("ProjectName")
<h3>Project Name: </h3>
@Html.TextBox("ProjectName", null, new { @class = "text_field"})
@Html.ValidationMessage("ProjectOwner")
<h3>Project Owner: </h3>
@Html.DropDownList("ProjectOwner", (SelectList)ViewBag.Customers, new { @class = "text_field" })
@Html.ValidationMessage("Description")
<h3>Description: </h3>
@Html.TextArea("Description", new { @class = "text_area"})
@Html.ValidationMessage("Department")
<h3>Departments: </h3>
@Html.DropDownList("Department", (SelectList)ViewBag.Departments, new { @class = "list" })
@Html.ValidationMessage("Region")
<h3>Regions: </h3>
@Html.DropDownList("Region", (SelectList)ViewBag.Regions, new { @class = "list" })
<input type="submit" value="Add" class="submit" />
}
Controll эр Боковой держатель
public ActionResult NewProject()
{
List<SelectListItem> list = new List<SelectListItem>();
list.Add(new SelectListItem() { Value = "0", Text = "Choose ..." });
list.Add(new SelectListItem() { Value = "1", Text = "First" });
list.Add(new SelectListItem() { Value = "2", Text = "Second" });
list.Add(new SelectListItem() { Value = "3", Text = "Third" });
ViewBag.Departments = new SelectList(list, "Value", "Text");
ViewBag.Regions = new SelectList(list, "Value", "Text");
ViewBag.Customers = new SelectList(list, "Value", "Text");
return View();
}
public ActionResult addNewProject(Project newProject)
{
if (ModelState.IsValid)
{
return RedirectToAction("index", "Home");
}
else
{
return View("NewProject", newProject);
}
}
Паспорта
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.ComponentModel.DataAnnotations;
namespace workflow.DataHolders
{
public class Project : DataHolder
{
[Required(ErrorMessage = "This Field Is Required")]
[StringLength(200, MinimumLength = 3, ErrorMessage = "Length Of The Title Should Be More Than 3 Letters")]
public string ProjectName{ get; set; }
[Required(ErrorMessage = "This Field Is Required")]
public List<SelectListItem> ProjectOwner { get; set; }
string Description { get; set; }
[Required(ErrorMessage = "This Field Is Required")]
public List<SelectListItem> Department { get; set; }
[Required(ErrorMessage = "This Field Is Required")]
public List<SelectListItem> Region { get; set; }
}
}
Что проверка достоверности вашего ожидая - все параметры, которые вы визуализируете, имеют атрибут 'value', поэтому он никогда не может быть недействительным. И все 3 dropdownlists пытаются привязать к свойствам, которые являются «List», которые не могут работать - элемент '
, но он всегда дает мне недопустимое значение, Я не знаю, почему – Moh
Конечно, потому что ваш tryng для привязки к свойству, который является 'List' - свойства должны быть 'int Region',' int Department' и т. Д. Я добавлю ответ в ближайшее время, будет больше деталь этой и других проблем в вашем коде. –