Мне нужно выполнить проверку на текстовое поле и выпадающее меню, которое запускается только тогда, когда оба значения пустые и ничего не делает, когда одно из значений пуст. Как мне это реализовать? Нужно ли создавать пользовательский валидатор? Ниже моя модель и просмотр МодельASP MVC Validation
public class CustomValidators
{
[Required]
[Required(ErrorMessage = "State Required")]
public string drpStateId { set; get; }
public System.Web.Mvc.SelectList drpState { set; get; }
[Required(ErrorMessage ="Region Required")]
public string txtRegion { set; get; }
}
Посмотреть
@model InterviewTest.Models.CustomValidators
@{
ViewBag.Title = "Custom Validator";
Layout = "~/Views/_Layout.cshtml";
}
<p>@Html.ActionLink("< Back", "Index")</p>
@using (Html.BeginForm("CustomValidatorPost"))
{
@Html.ValidationSummary()
<div class="container-fluid">
<div class="row">
<div class="col-sm-3">
<div class="form-group">
@Html.DropDownListFor(c => c.drpStateId, Model.drpState, "", new { @class = "form-control" })
</div>
</div>
<div class="col-sm-6">
<div class="form-group">
@Html.TextBoxFor(x => Model.txtRegion, new { @class = "form-control" })
@*<input type="text" id="txtRegion" name="txtRegion" class="form-control" />*@
</div>
</div>
<div class="col-sm-3">
<button type="submit" name="btnSubmit" id="btnSubmit" class="btn btn-default">Submit</button>
</div>
</div>
</div>
}
Рассмотрим атрибут [foolproof] (http://foolproof.codeplex.com/) '[RequiredIfNotEmpty (" drpStateId ")]', применяемый к вашему 'txtRegio n' (и аналогично применяется к свойству 'drpStateId' и удаляет оба атрибута' [Обязательные] ') –
@StephenMuecke, когда я пытался, чтобы представление работало, когда оба пуста. – aj12
Извините, неправильно поняли ваши требования. Для этого вам нужно будет написать собственный собственный атрибут проверки - [Полное руководство для проверки в ASP.NET MVC 3 - часть 2] (http://www.devtrends.co.uk/blog/the-complete- руководства к валидации-в-asp.net-MVC-3-часть-2) –