Ես ունեմ դիտման հետևյալ մոդելը
public class FormViewModel
{
[Required]
public DateTime? LocalFrom { get; set; }
[Required]
public DateTime? LocalTo { get; set; }
}
ապա վերահսկիչում ունեմ հետևյալ գործողությունը
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Index([Bind(Include = "LocalFrom,LocalTo")] FormViewModel model)
{
if (ModelState.IsValid)
{
var presenter = new ManagePresenter(model);
return View(presenter);
}
return View(model); // here model.LocalFrom, model.LocalTo should be null
}
Ահա իմ HTML ձևը
<form class="form-horizontal" action="/Manage/Index" method="post">
@Html.AntiForgeryToken()
<div class="form-group">
<label class="control-label col-sm-2" for="LocalFrom">From</label>
<div class="col-sm-10">
<input type="datetime" class="form-control" id="LocalFrom" name="LocalFrom" value="@Model.LocalFrom" required>
</div>
</div>
<div class="form-group">
<label class="control-label col-sm-2" for="LocalTo">To</label>
<div class="col-sm-10">
<input type="datetime" class="form-control" id="LocalTo" name="LocalTo" value="@Model.LocalTo)" required>
</div>
</div>
<div class="form-group">
<div class="col-sm-offset-2 col-sm-10">
<button type="submit" class="btn btn-primary">Submit</button>
</div>
</div>
</form>
Վստահ չեմ, որ զրոյական հատկություն ստեղծելը տրամաբանական է, թե ոչ այստեղ: Ես հիմնականում ուզում եմ մուտքագրումը համալրել LocalFrom
անունով blank
-ով, երբ Model.LocalFrom
-ը զրոյական է, կամ ճիշտ արժեքով, երբ Model.LocalFrom
-ը զրոյական չէ:
Խնդիր
Այնուհետև ModelState.IsValid
-ը միշտ վերադարձնում է false, նույնիսկ մենք բոլոր պահանջվող արժեքները առկա են և վավեր:
Երբ ես LocalFrom
-ը և LocalTo
-ը դարձնում եմ ոչ զրոյական, ModelState
-ը դառնում է վավեր: բայց տեսադաշտում կցուցադրվի ժամանակի սկզբի ժամանակը նման կերպ
Ինչպե՞ս կարող եմ զրոյական արժեք փոխանցել դիտմանը և ստիպել ModelState-ին ճիշտ վավերացնել:
jquery.validate.unobtrusive.js
-ը կամ ինչի՞ համար է այն ինձ համար: 14.09.2016jquery-{version}.js
,jquery.validate.js
ևjquery.validate.unobtrusive.js
: Երբ դուք կիրառում եք վավերացման հատկանիշ, որն իրականացնում էIClientValidatable
-ը (օրինակ՝[Required]
հատկանիշը),HtmlHelper
մեթոդները մուտքագրման համար կցուցադրենdata-val-*
ատրիբուտների շարք: Երբ էջը ներկայացվում է,jquery.validate.unobtrusive.js
-ը կարդում է այդ ատրիբուտները և ավելացնում կանոններjquery.validate.js
-ին, որն իր հերթին ստուգում է մուտքերի արժեքները և ցուցադրում է սխալի հաղորդագրություններ, եթե դրանք վավեր չեն: 15.09.2016