У меня есть модель, поле имени которой удаленно проверяется на наличие уникальных значений. Работает как положено. Теперь, если я хочу обновить некоторые другие свойства и не изменять поле имени, я получаю ошибку проверки поля имени и в этом случае. Согласно документации devextreme, опция reevaluate
должна иметь значение false, чтобы не проверять поля, где значение не изменилось. Я настроил валидатор соответственно, но это не имеет никакого эффекта.
Ниже приведен вид со скриптом настройки валидатора (остальные поля настраиваются с помощью ASP. net атрибутов валидации):
@model Sender
<form asp-action=@(ViewBag.Mode == "new" ? "AddSender" : "UpdateSender") asp-controller="Sender" method="post">
@using (Html.DevExtreme().ValidationGroup())
{
@Html.HiddenFor(m => Model.Id)
@(Html.DevExtreme().Form<Sender>()
.ID("form")
.FormData(Model)
.ColCount(1)
.Items(items => {
items.AddSimpleFor(m => Model.Name).Label(l => l.Text("Név")).Editor(e => e.TextBox().ID("sendername")).IsRequired(true);//.Editor(e => e.Autocomplete()
//.DataSource(d => d.StaticJson().Url(Url.Action("GetNames", "Sender")))
//.SearchMode(DropDownSearchMode.StartsWith)
//.ValueExpr("Name"));
items.AddSimpleFor(m => Model.Address);
items.AddSimpleFor(m => Model.ContactPerson);
items.AddSimpleFor(m => Model.ContactEmail);
items.AddGroup().Items(groupItem => groupItem.AddSimple().Template(
@<text>
<div style="text-align: right">
@(Html.DevExtreme().Button().ID("save").Text("Mentés").Width(100).Type(ButtonType.Success).UseSubmitBehavior(true))
@(Html.DevExtreme().Button().ID("cancel").Text("Mégsem").Width(100).Type(ButtonType.Normal).OnClick("close_onClick"))
</div>
</text>));
})
.LabelLocation(FormLabelLocation.Top)
)
}
</form>
<script>
$("#sendername").dxTextBox().dxValidator({
validationRules: [{
type: "async",
message: "Partner with this name already exists",
reevaluate: false,
validationCallback: function (params) {
return DevExpress.aspnet.sendValidationRequest("Name", params.value, "/MasterData/Sender/ValidateSenderName", "POST");
}
}, {
type: "required",
message: "Field value cannot be null"
}
]
});
</script>
Как мне решить эту проблему?