I am using FoolProof COre in Asp.Net Core 3.0 Application.
My Model is
public class PaymentReceiveMVm
{
public int PayMode { get; set; }
public string PaymentMode { get; set; }
[Column(TypeName = "date")]
[DataType(DataType.Date)]
public Nullable<DateTime> DOCredit { get; set; } //= DateTime.Today.Date;
[RequiredIf("PayMode",1,ErrorMessage ="Bank Name is Required")]
public int? BID { get; set; }
public string BankAccount { get; set; }
}
My _Layout Page inclueds:
<script src="~/vendor/jquery/jquery.min.js"></script>
<script src="~/vendor/bootstrap/js/bootstrap.min.js"></script>
<script src="~/vendor/jquery-validation/jquery.validate.min.js"></script>
<script src="~/lib/js/jquery.validate.min.js"></script>
<script src="~/lib/js/jquery.validate.unobtrusive.min.js"></script>
<script src="~/vendor/FoolProofValidation/mvcfoolproof.core.js"></script>
<script src="~/vendor/FoolProofValidation/mvcfoolproof.jquery.validation.js"></script>
<script src="~/vendor/FoolProofValidation/mvcfoolproof.unobtrusive.js"></script>
In my View is
$.validator.unobtrusive.parse("#EditPayReceiveM");
When correct input is there the data works fine. But when the RequiredIf validation fails system exception is there in Java Script which is as below:
System.ArgumentNullException: Value cannot be null. (Parameter 'items') at Microsoft.AspNetCore.Mvc.Rendering.MultiSelectList..ctor(IEnumerable items, String dataValueField, String dataTextField, IEnumerable selectedValues, String dataGroupField)
Full Razor View is as :
<script>
$(document).ready(function () {
$.validator.unobtrusive.parse("#EditPayReceiveM");
//Adding Containers to temporary Data Table
$('#BtnAdd').on('click', function () {
if (!$("#EditPayReceiveM").valid()) {
return false;
}
else {
console.log('DOC', $('#TxtDOC').val());
SaveModal(EditPayReceiveM, "/PaymentReceives/EditPayReceiveM", DtPaymentsReceived)
}
});
});
</script>
<div class="modal-header">
<h4 class="modal-title" id="MyModalTitle">Edit Payment</h4>
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
</div>
@using (Html.BeginForm("EditPayReceiveM", "PaymentReceives", FormMethod.Post, new { id = "EditPayReceiveM" }))
{
<div class="modal-body">
<form>
<fieldset>
<div asp-validation-summary="ModelOnly" class="text-danger"></div>
<div class="row">
<div class="col-lg-6">
<div class="form-group">
<label>Pay Mode</label>
@Html.DropDownListFor(model => model.PayMode, new SelectList(ViewBag.Paymode, "PMID", "PayMode"), "-- Select One --", new { @class = "form-control", @id = "CmbPayMode",@onchange= "CheckPayMode(this)" })
<span asp-validation-for="PayMode" class="text-danger"></span>
</div>
<div class="form-group">
<label>Credit Date</label>
<div class="input-group">
<div class="input-group-prepend">
<button type="button" id="CreditDate" class="input-group-text"><i class="fas fa-calendar-alt"></i></button>
</div>
<input type="text" asp-for="DOCredit" class="form-control" id="TxtDOC" />
<span asp-validation-for="DOCredit" class="text-danger"></span>
</div>
</div>
</div>
</div>
</div>
</fieldset>
</form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-info" data-dismiss="modal">Cancel</button>
<input type="button" class="btn btn-primary" value="Add" id="BtnAdd" />
</div>
}
-----
Please help I have done all what I could.