Я использую Ajax.Begin Form для отправки данных в форме без обновления всей страницы, мне нужно проверить текстовое поле, если оно имеет значение, тогда данные должны быть опубликованы должно быть показано другое сообщение проверки, но проблема заключается в валидации, и данные публикации одновременно происходят. Если я не добавлю файл jquery.unobtrusive-ajax.js, то мое частичное представление будет возвращаться как отдельная белая страница, но валидация работает, а форма не публикуется до тех пор, пока текстовое поле не будет иметь значение, НО, если я добавлю jquery.unobtrusive-ajax.js файл на странице, он отправляет данные, имеет ли значение текстовое поле или нет. Что не так с кодом, я не получаю это вообще. Пожалуйста, помогите, я провел два дня, пробовал свои возможные решения и до сих пор не добился успеха.Bootstrap Validator и Ajax Begin Form Conflict in Partial Views, MVC
Это мой Главный вид (Parent View), имеющий PartialView
<div id="div_SearchPatient2">
@Html.Partial("SearchPatientPartial");
</div>
@Scripts.Render("~/bundles/jqueryval")
jqueryval представляет собой комплект, который имеет jquery.unobtrusive-ajax.js файл.
<div>
@using (Ajax.BeginForm("Search", "Patient", new { },
new AjaxOptions
{
HttpMethod = "POST",
UpdateTargetId = "patientfound"
},
new
{
@name = "SearchPatientForm",
@id = "frmSearchPatient",
}
))
{
@Html.AntiForgeryToken()
<div class="form-title">
Enter MR Number to search patient
</div>
<div class="col-lg-4">
<div class="form-group">
<div class="col-lg-6">
<label class="control-label">MR Number</label>
</div>
<div class="col-lg-6">
<input type="text" class="form-control" name="command" data-mask="999-99-99" placeholder="000-00-00" required data-bv-notempty="true" data-bv-notempty-message="MRNo. is required." />
</div>
</div>
</div>
<div class="form-group">
<div class="col-md-4">
<input class="btn btn-darkorange" type="submit" value="Search" />
</div>
</div>
<div id="patientfound">
@Html.Partial("PatientFoundPartial")
</div>
}
</div>
Где patientfound - это div, который будет отображать детали, если найден. Я дал это в UpdateTargetId AjaxBeginForm.
Моего контроллер возвращается PartialView
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Search(FormCollection collection, string id)
{
// some code to get data
return PartialView("PatientFoundPartial");
}
Спасибо для решения, я пробовал это, но не успел опубликовать форму :( –
Я отредактировал t он отвечает, пожалуйста, еще раз проверьте –
Спасибо, но не успел снова, я не знаю, что не так с этой валидацией –