Kendo Grid Editar mensaje de validación personalizada en línea, por ej. para nombres duplicados, etc.

Tengo una entidadUbicación y estoy utilizando la cuadrícula de UI de Kendu con el modo de edición en línea. La entidad posee una propiedad.Nombre para mostrar, que se requiere yno debe existir dos veces en la base de datos

Por el momento, funciona para mostrar elNecesario Mensaje de validación:

Y también funciona para construir un método.CustomValidateModel llamado en elUbicaciónController El método Ajax InLine Create, que verifica si el nombre ya existe en la base de datos y agrega unError de modelo. Atrapo este error entonces en el.Eventos (eventos => eventos.Error ("onError")) a través de javascript y mostrar luego el mensaje a través de javascript emergente.

ModelState.AddModelError("DisplayName", "Name already exists.");

Y este es el quid del asunto: No quiero tener este mensaje emergente de javascript. También quiero tener esta información debajo del campo, como este "¡Campo obligatorio!" mensaje. He buscado mucho tiempo, pero la mayoría de la gente sugiere solo esta validación y salida a través de javascript, ya que funciona en el momento.

Además, el problema real, además del elemento emergente, es que el registro, que el usuario desea crear en la cuadrícula, es entoncesdesapareciendo Después de confirmar la ventana emergente de javascript. Pero para la usabilidad, quiero que la nueva línea y la entrada persistan. Los usuarios deberían poder editar el nombre dado, él quería guardar. Y NO debe ingresar la línea completa nuevamente. Sólo el mensaje de validación "Nombre ya existente". debe solicitar información.

Código:

Entidad de localización:

public class LocationDto
{
    public Guid? ID { get; set; }
    [Required(AllowEmptyStrings = false, ErrorMessage = "Field required!")]
    public string DisplayName { get; set; }
    // other properties
}

Método de acción de LocationController:

[AcceptVerbs(HttpVerbs.Post)]
public ActionResult CreateInline([DataSourceRequest] DataSourceRequest request, LocationDto model)
{
    CustomValidateModel(model); // checks if the DisplayName is already existing in the DB
    if (model != null && ModelState.IsValid)
    {
        // Create and Save the Model into database
    }
    return Json(ModelState.ToDataSourceResult());
}

función javascript:

function onError(e, status) {
    if (e.errors) {
        var message = "Error:\n";
        $.each(e.errors, function (key, value) {
            if (value.errors) {
                message += value.errors.join("\n");
            }
        });
        this.cancelChanges();
        alert(message);
    }
}

Espero que exista la posibilidad de que esto funcione de la misma manera. Estaría bien de acuerdo con la visualización congruente y una mejora de la usabilidad.

Respuestas a la pregunta(3)

Su respuesta a la pregunta