我正在使用C#和.NET Framework 4.7开发ASP.NET MVC 5应用程序。
在我看来,我有这段代码:
<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>
我有一个按钮,可以使用jQuery向表中添加新行。
我需要检查ProductCode
是否唯一(所有产品必须具有唯一的产品代码)。我使用字典等效数据结构使用jQuery做到了,但我不确定我是否可以使用ASP.NET验证来完成它。
我希望在ProductCode
字段为空时显示消息,例如它显示的消息。
我在这个视图中使用的模型是:
public class CreateProductViewModel
{
public byte LawId { get; set; }
public IList<Models.Products> Products { get; set; }
public CreateProductViewModel()
{
Products = new List<Models.Products>();
}
}
Products
有以下验证:
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)
答案 0 :(得分:1)
首先,您好回答您的问题,
有没有办法添加验证来验证所有产品的代码都是唯一的?
是的,有办法...... :)
以下是:
[Index("Ix_ProductCode",Order =1,IsUnique =true)]
public string ProductCode { get; set; }
通过使用索引,您可以实现它,我个人在我的项目中实现它运行良好。
有用的链接:
https://www.codeproject.com/articles/1130113/best-ways-of-implementing-uniqueness-or-unique-key
可在此处找到索引的官方说明:https://msdn.microsoft.com/en-us/library/jj591583(v=vs.113).aspx
希望以上信息有用,请告诉我您的想法或反馈
由于
KARTHIK