これは私のモデルです
public class ContractsViewModel
{
public int Id { get; set; }
public string Code { get; set; }
public List<ContractProductItemViewModel> Products { get; set; }
public ContractsViewModel()
{
this.Products = new List<ContractProductItemViewModel>();
}
}
public class ContractProductItemViewModel
{
public int Id { get; set; }
[Required]
public int? ProductId { get; set; }
[Required]
public double Price { get; set; }
[Required]
public int Quantity { get; set; }
}
これはコントラクト ビューです。
<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>
@using (Html.BeginForm()) {
@Html.ValidationSummary(true)
<div class="fieldset">
<div class="editor-label">
@Html.LabelFor(model => model.Code)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Code)
@Html.ValidationMessageFor(model => model.Code)
</div>
<div class="new-detailitem">
<div class="new-icon"></div>
<div>Crear Nuevo</div>
</div>
<div>
<table class="tblindex detail">
<thead>
<td class="quantity">Cantidad</td>
<td>Grupo</td>
<td>Articulo</td>
<td class="price">Precio</td>
<td>SubTotal</td>
<td></td>
</thead>
<tbody>
</tbody>
</table>
</div>
</div>
}
これが productDetail ビューです
@{
Layout = null;
if (this.ViewContext.FormContext == null)
{
this.ViewContext.FormContext = new FormContext();
}
}
<tr>
<td class="quantity">
@Html.TextBoxFor(model => model.Quantity)
@Html.ValidationMessageFor(model => model.Quantity)
</td>
<td class="category"></td>
<td class="product">
<div>
<span style="float:left"></span>
@Html.HiddenFor(model => model.ProductId)
<div class="getitem"></div>
<div style="clear: both"></div>
</div>
@Html.ValidationMessageFor(model => model.ProductId)
</td>
<td class="price">
@Html.EditorFor(model => model.Price)
@Html.ValidationMessageFor(model => model.Price)
</td>
<td>0.00</td>
<td><div class="removeicon"/></td>
</tr>
jquery ajaxを使用して、各アイテムの詳細行をプログラムで追加しています。
問題が 1 つあります。productdetail ビューの html.EditorFor と ValidationMessageFor が各行に同じ ID を生成し、クライアントでイベントが間違った方法で処理されます。
ここで何が間違っていますか?これを解決するための最良のアプローチは何ですか?
ありがとう