У меня есть проверки на основе пользовательских атрибутов с использованием MVC4 вПолучения выбранного пользователя выпадающего значение
я могу получить пользователь, введенное значение в текстовом поле, используя следующий код, используя PropertyInfo []
PropertyInfo textBoxEnteredValue = validationContext.ObjectType.GetProperty("TxtCrossField");
Но я не могу чтобы получить выбранное пользователем значение раскрывающегося списка.
Есть ли какие-либо изменения в коде должны быть сделаны, пожалуйста предложить
object value
приходит в NULL в методIsValid
. Любая идея, почему это так?
Validation
protected override ValidationResult IsValid(object value, ValidationContext validationContext)
{
//Working
PropertyInfo textBoxEnteredValue = validationContext.ObjectType.GetProperty("TxtCrossField");
//How to get the selected item?
PropertyInfo selectedDropdownlistvalue = validationContext.ObjectType.GetProperty("DDlList1");
}
Модель
public class CrossFieldValidation
{
public string DDlList1
{ get; set; }
// [Required(ErrorMessage = "Quantity is required")]
[ValueMustbeInRange]
[Display(Name = "Quantity:")]
public string TxtCrossField
{ get; set; }
}
VIEW
@model MvcSampleApplication.Models.CrossFieldValidation
@{
ViewBag.Title = "DdlCrossFields";
}
<h2>DdlCrossFields</h2>
@using (Html.BeginForm("PostValues", "CrossFieldsTxtboxes"))
{
@Html.ValidationSummary(true)
<div class ="editor-field">
@Html.TextBoxFor(m => m.TxtCrossField)
@Html.ValidationMessageFor(m=>m.TxtCrossField)
</div>
@*@Html.DropDownList("DDlList1",(IEnumerable<SelectListItem>)ViewBag.itemsforDropdown)*@
@Html.DropDownList("ItemsforDrop", ViewBag.ItemsforDrop as SelectList,"Select A state", new {id= "State"})
<input id="PostValues" type="Submit" value="PostValues" />
}
любой PLS предложит любые идеи по этому ... Большое спасибо ....
, как я могу использовать это в пользовательской функции атрибута –
забывали, что, ха-ха. Обновлен мой ответ. –
hmm спасибо, но, на мой взгляд, у меня есть два элемента управления - это выпадающее меню, а другое - текстовое поле. Я хочу получить доступ к обоим значениям в пользовательской функции атрибута, поэтому мне нужно добавить два атрибута проверки или один из них. –