Как переопределить или динамически установить значение для data-valmsg-for из Html.ValidationMessageFor - PullRequest
0 голосов
/ 29 августа 2018

Я хочу знать, как я могу переопределить или установить значение для data-valmsg-for?

У меня есть это частичное представление

  @model ANGS_SyncBook.Models.Transaction.JournalDetails

@{
    int i=ViewBag.i==null?0:ViewBag.i;
}
<tr scope="row">
    <td>
        @*<select id="selDocument" asp-for="Gla_Code" class="form-control form-control-sm" asp-items="@(new SelectList(ViewBag.ChartOfAccounts,"Gla_Code","Gla_Name"))"></select>*@
        @*<select id="selChartofAcc" asp-for="Gla_Code" class="form-control form-control-sm"></select>*@
        @Html.DropDownList("[" + i + "].Gla_Code", new SelectList(ViewBag.ChartOfAccounts, "Gla_Code", "Gla_Name"), new { @class = "form-control form-control-sm", @id= "[" + i + "].Gla_Code" })
        @Html.ValidationMessageFor(model => model.Gla_Code, null, new { @Name = "[" + i + "].Gla_Code" } )
    </td>

Пример вывода частичного представления

enter image description here

Я хочу проверить каждое обязательное поле, но оно не работает, поскольку идентификатор создается динамически

Есть что-то подобное?

@Html.ValidationMessageFor(model => model.Gla_Code, null, new { @Name = "[" + i + "].Gla_Code", @data-valmsg-for="[" + i + "].Gla_Code" } )

1 Ответ

0 голосов
/ 29 августа 2018

Решите проблему, используя

    @using(Html.BeginCollectionItem("JDetails"))
{
<tr scope="row">
    <td>
        @Html.DropDownListFor(model => model.Gla_Code, new SelectList(ViewBag.ChartOfAccounts, "Gla_Code", "Gla_Name"))
        @Html.ValidationMessageFor(model => model.Gla_Code, null)
    </td>
</tr>

etc..
}
...