non funziona per me in Ajax.BeginFormAjax.BeginForm e validazione
Questo è il mio codice:
<div id="report">
<div id="projectReport">
<div >
@{
Html.EnableClientValidation();
}
@using (Ajax.BeginForm("AnalyticsDates", new AjaxOptions
{
InsertionMode = InsertionMode.Replace,
UpdateTargetId = "reportContent"
}))
{
@Html.LabelFor(m => m.StartDate)
@Html.TextBoxFor(m => m.StartDate, new { id = "start" })
@Html.ValidationMessageFor(model => model.StartDate)
@Html.LabelFor(m => m.EndDate)
@Html.TextBoxFor(m => m.EndDate, new { id = "end" })
@Html.ValidationMessageFor(model => model.EndDate)
<input id="btnsearch" type="submit" [email protected] class="iconHeader"/>
}
</div>
</div>
<div id="reportContent">
</div>
</div>
E mi hanno consentito di convalida nella pagina web.config:
<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />
e ha aggiunto i file js e
<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.js")" type="text/javascript"></script>
secondo problema correlato al primo, mia azione è
[HttpPost]
[Authorize(Roles = "XXXReport")]
public async Task<ActionResult> AnalyticsDates(ReportRequestVM reportRequestVM)
{
if (!ModelState.IsValid)
{
return View("**MainReports**", reportRequestVM);
}
// fill reportRequestVM with data
return View("**PartialReport**", reportRequestVM);
}
Se il modello è valido torno una vista parziale e la pagina guarda bene, altrimenti torno vista principale, con la forma, ma in questo la pagina lo rende doppio. la domanda è, nel caso in cui la validazione del client fallisca, come restituire il modulo principale con gli errori di validazione?
Qualsiasi aiuto sarebbe apprezzato, 10x Rony
grazie per avermi dato il colpo di risolverlo :) – ron