मैं निम्नलिखित मॉडल हैं:
एमवीसी मॉडल सत्यापन?
public class FileModel
{
public int Id { get; set; }
[Required(ErrorMessage = "Required")]
[StringLength(100, ErrorMessage = "Max is 100, Min is 3", MinimumLength = 3)]
public string Name { get; set; }
public string Path { get; set; }
[Required(ErrorMessage = "Required")]
public string FileTypeId { get; set; }
public DateTime RegistrationDate { get; set; }
}
निम्नलिखित मेरे विचार है:
@using (Html.BeginForm("Index", "FileManagement", FormMethod.Post, new { enctype = "multipart/form-data" }))
{
<table class="content-table" style="min-width: 600px; border-spacing: 15px;">
<tr>
<td colspan="4" class="table-header">New File
<div class="add-icon">+</div>
</td>
</tr>
<tr>
<td>Name: </td>
<td>@Html.TextBoxFor(q => q.NewFile.Name, new { maxlength = "100", id = "NewFile_Name1", name = "NewFile.Name1" })
<br />@Html.ValidationMessageFor(q => q.NewFile.Name)
</td>
<td>
<input type="file" id="FileUploadField1" /></td>
<td style="width: 16px; text-align: center;"> </td>
</tr>
<tr>
<td colspan="4" style="text-align: center;">
<input type="submit" value="Submit" />
</td>
</tr>
</table>
<script type="text/javascript">
$('.content-table .add-icon').click(function() {
var lastFileField = $('.content-table input[type="file"]').last();
var lastId = lastFileField.attr('id').replace(/\D*/g, '');
lastId = parseInt(lastId) + 1;
var newFields = '<tr>' +
'<td>Name : </td>' +
'<td><input data-val="true" data-val-length="Max chars is 100, Min chars is 3" data-val-length-max="100" data-val-length-min="3" data-val-required="Required" id="NewFile_Name' + lastId + '" name="NewFile.Name' + lastId + '" type="text" value="" /><br /><span class="field-validation-valid" data-valmsg-for="NewFile.Name' + lastId + '" data-valmsg-replace="true"></span></td>' +
'<td><input type="file" id="FileUploadField' + lastId + '"/></td>' +
'<td style="text-align:right;"><div class="delete-icon"></div></td>' +
'</tr>';
var lastTr = $(lastFileField).parents('tr:first')[0];
$(lastTr).after(newFields);
});
$('.content-table .delete-icon').live('click', function() {
$(this).parents('tr:first').remove();
});
</script>
}
आप देख सकते हैं, हम एक या अधिक फ़ाइलों को अपलोड करने के लिए एक रूप है। इसलिए, मैंने उपयोगकर्ताओं के लिए एक + बटन जोड़ा है कि वे फ़ॉर्म में फ़ाइल फ़ील्ड जोड़ सकते हैं।
उपयोगकर्ताओं को फ़ाइल का नाम दर्ज करना होगा और अपलोड करने के लिए एक फ़ाइल का चयन करना होगा। लेकिन एमवीसी क्लाइंट सत्यापनकर्ता केवल पहले इनपुट को मान्य करता है जो Razor
के साथ जोड़ा गया है।
क्लाइंट साइड और सर्वर पक्ष में सभी फ़ील्ड को सत्यापित करने के लिए मैं एमवीसी सत्यापनकर्ता को कैसे मजबूर कर सकता हूं।
एक और सवाल यह है:
हम एक MVC नियंत्रक में फ़ील्ड मान रही कैसे संभाल सकते हैं।
धन्यवाद
मेरा प्रश्न केवल डेटा मॉडल बाध्यकारी के बारे में नहीं था, मुख्य प्रश्न जावास्क्रिप्ट –
के साथ जोड़े गए इनपुट फ़ील्ड पर क्लाइंट साइड सत्यापन के बारे में था, मैंने समाधान के साथ दोनों प्रश्नों का उत्तर दिया लेकिन स्पष्टीकरण नहीं दिया। क्षमा करें, मैं अपनी पोस्ट संपादित कर रहा हूं। – Pluc
एक बार और पढ़ने के बाद, मुझे एहसास हुआ कि मैं वास्तव में ट्रैक से बाहर था। मेरे सभी पोस्ट केवल आपके उप प्रश्न और सर्वर पक्ष सत्यापन का जवाब देते हैं। यह ग्राहक पक्ष को प्रभावित नहीं करता है। संपादन 2 मूल पोस्ट का उत्तर है। आपको अपने प्रश्न के शीर्षक में उचित शर्तों का उपयोग करना चाहिए। मॉडल प्रमाणीकरण सर्वर-साइड सत्यापन है। यही कारण है कि मैं उलझन में आया (लेकिन हाँ, मुझे भी पोस्ट पर अधिक ध्यान देना चाहिए था)। – Pluc