我有一个实体位置,我正在使用具有InLine编辑模式的Kendu UI网格.该实体拥有属性DisplayName,该属性是必需的,并且在数据库中不得存在两次.
目前,它可以显示" 必需的验证"消息:

它还可以构建一个在LocationController Ajax InLine Create方法中调用的方法CustomValidateModel,该方法检查Name是否已存在于数据库中,然后添加ModelError.我通过javascript 在.Events(events => events.Error("onError"))中捕获此错误,然后通过javascript弹出显示消息.
ModelState.AddModelError("DisplayName", "Name already exists.");
Run Code Online (Sandbox Code Playgroud)

这就是问题的症结所在:我不想拥有这个javascript弹出消息.我想在这个领域下面也有这个信息,比如"需要现场!" 信息.我已经搜索了很多时间,但大多数人建议只有这个验证和输出通过javascript,因为它在当下工作.
另外,除了弹出窗口之外的实际问题是,在确认javascript弹出窗口之后,用户想要在Grid中创建的记录正在消失.但是为了实用性,我希望新行和输入仍然存在.用户应该能够编辑给定的名称,他想保存.而不应该再次输入完整的行.只有验证消息"名称已存在".应该提示信息.
码:
位置实体:
public class LocationDto
{
public Guid? ID { get; set; }
[Required(AllowEmptyStrings = false, ErrorMessage = "Field required!")]
public string DisplayName { get; set; }
// other properties
}
Run Code Online (Sandbox Code Playgroud)
LocationController动作方法:
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult CreateInline([DataSourceRequest] DataSourceRequest request, LocationDto model)
{
CustomValidateModel(model); // checks if …Run Code Online (Sandbox Code Playgroud)