रिमोट सत्यापन ठीक काम करता है जब मुझे दृश्य पर मेरे मॉडल का केवल एक उदाहरण मिलता है।मॉडलों के संग्रह पर अतिरिक्त फ़ील्ड के साथ रिमोट सत्यापन
समस्या तब होती है जब मेरा विचार मॉडल के संग्रह से निपट रहा है।
public class TableFormTestModel
{
public GridRow[] GridData { get; set; }
public class GridRow
{
public Int32 Id { get; set; }
[Required, StringLength(50), Remote("IsNameAvailable", "TableFormTest", "Admin", AdditionalFields = "Id")]
public String Name { get; set; }
}
}
मेरी नजर में मुझे मिल गया है: यहाँ मेरी मॉडल है
@model TableFormTestModel
@using (Html.BeginForm())
{
Html.EnableClientValidation();
Html.EnableUnobtrusiveJavaScript();
for(var i = 0;i<Model.GridData.Length;i++)
{
<div>
@Html.HiddenFor(x => Model.GridData[i].Id)
@Html.TextBoxFor(x => Model.GridData[i].Name)
@Html.ValidationMessageFor(x => Model.GridData[i].Name)
</div>
}
}
यह काफी प्रपत्र पैदा करने में एक लंबा रास्ता है, किसी को भी मेरे लिए वाक्य रचना में सुधार कर सकते हैं?
निम्न HTML प्रपत्र उत्पादन किया जाता है:
<form method="post" action="/Admin/TableFormTest/"> <div>
<input type="hidden" value="1" name="GridData[0].Id" id="GridData_0__Id" data-val-required="The Id field is required." data-val-number="The field Id must be a number." data-val="true">
<input type="text" value="abc" name="GridData[0].Name" id="GridData_0__Name" data-val-required="The Name field is required." data-val-remote-url="/Admin/TableFormTest/IsNameAvailable" data-val-remote-additionalfields="*.Name,*.Id" data-val-remote="&#39;Name&#39; is invalid." data-val-length-max="50" data-val-length="The field Name must be a string with a maximum length of 50." data-val="true">
<span data-valmsg-replace="true" data-valmsg-for="GridData[0].Name" class="field-validation-valid"></span>
</div>
<div>
<input type="hidden" value="2" name="GridData[1].Id" id="GridData_1__Id" data-val-required="The Id field is required." data-val-number="The field Id must be a number." data-val="true">
<input type="text" value="def" name="GridData[1].Name" id="GridData_1__Name" data-val-required="The Name field is required." data-val-remote-url="/Admin/TableFormTest/IsNameAvailable" data-val-remote-additionalfields="*.Name,*.Id" data-val-remote="&#39;Name&#39; is invalid." data-val-length-max="50" data-val-length="The field Name must be a string with a maximum length of 50." data-val="true">
<span data-valmsg-replace="true" data-valmsg-for="GridData[1].Name" class="field-validation-valid"></span>
</div>
हालांकि उपरोक्त एचटीएमएल काफी अच्छी तरह से (संग्रह से प्रत्येक मॉडल विशिष्ट आईडी और नाम मिल गया है) वहाँ दूरदराज के सत्यापन पर अतिरिक्त फ़ील्ड के साथ एक समस्या है लग रहा है :
data-val-remote-additionalfields="*.Name,*.Id"
पहली पंक्ति से आईडी दूसरी पंक्ति पर दूरस्थ सत्यापन को निकाल दिया जाता है जब उठाया जाता है।
प्रदर्शन टेम्पलेट्स और फिर @Html का उपयोग करने का प्रयास करें।DisplayFor (मॉडल => मॉडल। ग्रिडडाटा) – mimo