আমার কাছে সহজ এএসপি.নেট এমভিসি অ্যাকশন রয়েছে:
public ActionResult Edit(EditPostViewModel data)
{
}
এর EditPostViewModel
মতো বৈধতা বৈশিষ্ট্য রয়েছে:
[Display(Name = "...", Description = "...")]
[StringLength(100, MinimumLength = 3, ErrorMessage = "...")]
[Required()]
public string Title { get; set; }
দর্শনে আমি নিম্নলিখিত সহায়কগুলি ব্যবহার করছি:
@Html.LabelFor(Model => Model.EditPostViewModel.Title, true)
@Html.TextBoxFor(Model => Model.EditPostViewModel.Title,
new { @class = "tb1", @Style = "width:400px;" })
আমি যদি এমন কোনও ফর্মটিতে জমা দিই যে এই পাঠ্যবক্সটি একটি বৈধকরণে স্থাপন করা হয়েছে তবে প্রথমে ক্লায়েন্ট এবং তারপরে পরিষেবাতে করা হবে ModelState.IsValid
।
এখন আমি বেশ কয়েকটি প্রশ্ন পেয়েছি:
এর পরিবর্তে কি jQuery এজ্যাক্স জমা দিয়ে ব্যবহার করা যেতে পারে? আমি যা করছি তা হ'ল ফর্মটি সরিয়ে ফেলা এবং সাবমিট বাটনে ক্লিক করে একটি জাভাস্ক্রিপ্ট ডেটা সংগ্রহ করবে এবং তারপরে চালাও
$.ajax
।সার্ভার পাশ
ModelState.IsValid
কাজ করবে?আমি কীভাবে বৈধতার সমস্যাটিকে ক্লায়েন্টের কাছে ফরোয়ার্ড করতে এবং এটিকে উপস্থাপন করতে পারি যদি আমি বিল্ড ইন্ট বৈধতা (
@Html.ValidationSummary(true)
) ব্যবহার করছি?
আজাক্স কলের উদাহরণ:
function SendPost(actionPath) {
$.ajax({
url: actionPath,
type: 'POST',
dataType: 'json',
data:
{
Text: $('#EditPostViewModel_Text').val(),
Title: $('#EditPostViewModel_Title').val()
},
success: function (data) {
alert('success');
},
error: function () {
alert('error');
}
});
}
সম্পাদনা 1:
পৃষ্ঠায় অন্তর্ভুক্ত:
<script src="/Scripts/jquery-1.7.1.min.js"></script>
<script src="/Scripts/jquery.validate.min.js"></script>
<script src="/Scripts/jquery.validate.unobtrusive.min.js"></script>