C# 验证以验证唯一性
我正在用C#和.NETFramework 4.7开发一个ASP.NETMVC5应用程序 在我看来,我有以下代码:C# 验证以验证唯一性,c#,jquery,asp.net,asp.net-mvc,C#,Jquery,Asp.net,Asp.net Mvc,我正在用C#和.NETFramework 4.7开发一个ASP.NETMVC5应用程序 在我看来,我有以下代码: <tbody> @for (int index = 0; index < Model.Products.Count; index++) { <tr> <td> <div class="group"> @H
<tbody>
@for (int index = 0; index < Model.Products.Count; index++)
{
<tr>
<td>
<div class="group">
@Html.TextBoxFor(m => m.Products[index].ProductCode)
@Html.HiddenFor(m => m.Products[index].Law)
<div class="mensajeError">@Html.ValidationMessageFor(m => m.Products[index].ProductCode)</div>
</div>
</td>
<td>
<div class="group">
@Html.TextBoxFor(m => m.Products[index].Description, new { @class = "productClass", @style = "max-width:none" })<br />
<div class="mensajeError">@Html.ValidationMessageFor(m => m.Products[index].Description)</div>
</div>
</td>
<td>
<div class="group">
@Html.TextBoxFor(m => m.Products[index].Name, new { @class = "productClass" })<br />
<div class="mensajeError">@Html.ValidationMessageFor(m => m.Products[index].Name)</div>
</div>
</td>
<td>
<div class="group">
@Html.TextBoxFor(m => m.Products[index].Comment, new { @class = "productClass" })<br />
<div class="mensajeError">@Html.ValidationMessageFor(m => m.Products[index].Comment)</div>
</div>
</td>
</tr>
}
</tbody>
而产品
具有以下验证:
public class Products
{
public int Id { get; set; }
[Required(ErrorMessageResourceType = typeof(Resources.Resources),
ErrorMessageResourceName = "ProductCodeRequired")]
[StringLength(20, ErrorMessageResourceType = typeof(Resources.Resources),
ErrorMessageResourceName = "ProductCodeLong")]
public string ProductCode { get; set; }
[StringLength(50, ErrorMessageResourceType = typeof(Resources.Resources),
ErrorMessageResourceName = "ProductDescriptionLong")]
public string Description { get; set; }
public byte Law { get; set; }
[StringLength(50, ErrorMessageResourceType = typeof(Resources.Resources),
ErrorMessageResourceName = "ProductNameLong")]
public string Name { get; set; }
[StringLength(100, ErrorMessageResourceType = typeof(Resources.Resources),
ErrorMessageResourceName = "ProductCommentLong")]
public string Comment { get; set; }
}
是否有方法添加验证以验证所有产品的代码在客户端都是唯一的
在我的数据库表上有此约束,但它在服务器端:
ALTER TABLE [dbo].[Product]
ADD CONSTRAINT [UNQ_PRODUCTCODE_PRODUCT]
UNIQUE (ProductCode)
嗨首先要回答你的问题 是否有方法添加验证以验证所有产品的代码是否唯一 是的,有办法……) 方法如下:
[Index("Ix_ProductCode",Order =1,IsUnique =true)]
public string ProductCode { get; set; }
通过使用索引可以实现它,我个人在我的项目中实现了它,效果很好
有用链接:
[Index("Ix_ProductCode",Order =1,IsUnique =true)]
public string ProductCode { get; set; }
可在此处找到索引的官方解释:
希望以上信息有用,请告诉我您的想法或反馈
谢谢
Karthik要检查与其他现有记录相比的唯一性,可以使用
RemoteAttribute
。但要在动态添加新记录时在同一视图中进行额外的唯一性比较,您需要编写自己的自定义验证属性,该属性为客户端和服务器端验证实现iclientvalidable
。谢谢,您可以使用验证属性,但我想在客户端执行此操作,在我将数据发送到服务器之前。谢谢。您好,我很高兴看到它的帮助。据我所知,我认为我们不能完全在客户端实现检查唯一性的功能,因为要从数据库获取数据,我们无论如何都应该到服务器端。但可能您可以做一件事,捕获上述注释的异常并在客户端上显示错误消息。因此,用户将在客户端看到带有错误消息的同一屏幕。谢谢