Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 4 如果MVC弹出窗体中存在重复记录,则添加错误消息_Asp.net Mvc 4 - Fatal编程技术网

Asp.net mvc 4 如果MVC弹出窗体中存在重复记录,则添加错误消息

Asp.net mvc 4 如果MVC弹出窗体中存在重复记录,则添加错误消息,asp.net-mvc-4,Asp.net Mvc 4,我有一个名为AddNew的弹出窗口,当用户单击名为AddNew的按钮时,将显示该窗口。按钮本身具有名为TRN和DOB的字段编号。我现在遇到的问题是,当用户尝试添加重复的TRN时,我试图显示错误消息,但不幸的是,只有当必填字段为空时,才会显示错误消息 无论如何,我可以在验证摘要中显示重复的错误消息,如在必填字段中显示,并保留表单中以前输入的所有值。请告知。多谢各位 这是我目前掌握的代码。多谢各位 Index.cshtml <input type="button" id="btnAddNew"

我有一个名为AddNew的弹出窗口,当用户单击名为AddNew的按钮时,将显示该窗口。按钮本身具有名为TRN和DOB的字段编号。我现在遇到的问题是,当用户尝试添加重复的TRN时,我试图显示错误消息,但不幸的是,只有当必填字段为空时,才会显示错误消息

无论如何,我可以在验证摘要中显示重复的错误消息,如在必填字段中显示,并保留表单中以前输入的所有值。请告知。多谢各位

这是我目前掌握的代码。多谢各位

Index.cshtml

<input type="button" id="btnAddNew" style="height:50px; font-size:14px; width:95px; background-color:#3399FF; white-space: normal;" class="k-button" title="AddNew" value="Add New" />

<script type="text/javascript">

$(document).ready(function () {
    $('#btnAddNew').click(function () {
     window.open('@Url.Action("AddNew", "Details")', 'AddProduct', 'height=' + (window.screen.height - 450) + ',width=950,left=' + (window.screen.width - 5) + ',top=10,status=no,toolbar=no,resizable=yes,scrollbars=yes');
        });
});

</script>
[Required(ErrorMessage = "Please enter TRN")]
        [DisplayName("TRN")]
        [StringLength(20)]
        public string TRN { get; set; }

[Required(ErrorMessage = "Please enter or select Date of Birth")]
        [DisplayName("Date Of Birth")]
        public DateTime? DOB { get; set; }

如果我没有弄错的话,ValidationSummary必须设置为true以显示自定义错误

编辑:待完成:

在AddNew.cshtml文件中,替换

@Html.ValidationSummary(false, "Please fix the following errors:", new Dictionary<string, object> { { "id", "valSumId" } });
@Html.ValidationSummary(false,“请修复以下错误:”,新字典{{“id”,“valSumId”});
与:

@Html.ValidationSummary(true,“请修复以下错误:”,新字典{{“id”,“valSumId”});

它仍然是一样的,它只显示所需的验证错误,但不显示重复记录HMMM,odd。在这种情况下,我自己的代码(有效)的唯一区别是ModelState.addmodeleror部分位于ActionResult创建函数中。我只使用@Html.ValidationSummary(true);没有第二个论点,这是真的。现在,我尝试在类似于必填字段的模型中创建验证。有什么想法吗?没有。我使用它捕获保存时抛出的任何异常(我已将业务逻辑放入了保存中)。除了上面提到的区别,我用完全相同的方法来做。@Supermode:在您的try-catch-DbUpdateConcurrencyException中:也许也值得在这里添加一个ModelState.AddModelError?
[Required(ErrorMessage = "Please enter TRN")]
        [DisplayName("TRN")]
        [StringLength(20)]
        public string TRN { get; set; }

[Required(ErrorMessage = "Please enter or select Date of Birth")]
        [DisplayName("Date Of Birth")]
        public DateTime? DOB { get; set; }
@Html.ValidationSummary(false, "Please fix the following errors:", new Dictionary<string, object> { { "id", "valSumId" } });
@Html.ValidationSummary(true, "Please fix the following errors:", new Dictionary<string, object> { { "id", "valSumId" } });