[英]MVC Bootstrap Partial View ValidationMessageFor execute on loading Page
我正在做一個MVC
, Bootstrap App
。
我通過將Model
作為參數傳遞的Partial View from Jquery
打開Bootstrap
Partial View from Jquery
。
從Controller
我返回Partial View
,然后從Jquery打開它。
我發現的問題是,在加載en Partial View
會執行ValidationMessageFor
。我找不到原因。
過程是這樣的...我有一個稱為JavaScript函數的圖片...
img id =“ btnEmail” src =“〜/ Content / Images / Email.png” onclick =“ btnEmail('param1',Param2)”
這是我的Jquery
function btnEmail(nick, user_id) { --validate if user is logged and call function that call Partial View if (SearchLogin()) SendMail(); } function SendMail() { user_id = $('#CommentUser_id').val(); nick = $('#LblCommentName').val(); if (user_id == $('#User_id').val()) return; var model = { Object_id: $("#Upload_id").val(), Nick: nick, UserDestination_id: $("#User_id").val(), Parent_id: null, UserOrigin_id: user_id}; $.ajax( { type: "POST", url: '@Url.Action("Email", "Contact")', data: model, success: function (result) { $("#myModalContact").html(result).modal({ backdrop: "static" }); }, }); "static" }); }
這是我的
Controller Method
public async Task<ActionResult> Email(ContactModel model) { return PartialView("_Contact", model); }
這是我的部分觀點
如果我這樣叫我的局部視圖
<div class="modal fade" id="myModalContact" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"> @Html.Partial("~/Views/Contact/_Contact.cshtml", new TableAvivaVoz.Models.ContactModel() { Object_id = Model.upload.Upload_id, Nick = Model.upload.Nick, UserDestination_id = Model.upload.User_id, Parent_id = null,UserOrigin_id=Model.User_id }); </div>
它工作正常...
這是我的局部視圖的一部分
@model TableAvivaVoz.Models.ContactModel @{ AjaxOptions ajaxOpts = new AjaxOptions { InsertionMode = InsertionMode.Replace, HttpMethod = "POST", OnSuccess = "sucessContact", }; } @using (Ajax.BeginForm("XXX", "Contact", ajaxOpts)) { <div class="modal-dialog"> <div class="modal-content"> <div class="modal-header"> <h4 class="modal-title" id="myModalLabel"> </h4> </div> <div class="myPartialContact"> <div class="alert alert-success hidden"> </div> </div> @Html.AntiForgeryToken() <div style="padding-bottom:220px"> <div class="modal-body"> <div class="col-md-10"> @Html.TextAreaFor(model => model.Description, 10, 80, new { @class = "txtDescQ", placeholder = "Ingresa un mensaje", @rows = 8, onclick = "OcultarRecomend();" }) @Html.ValidationMessageFor(model => model.Description, "", new { @class = "text-danger" }) </div> </div> </div> <div class="myPartialContactBtn modal-footer"> <button type="button" class="btn btn-default visible btnOk" data-dismiss="modal">Close</button> <button type="submit" class="btn btn-primary visible btnOk" id="btnSave">Enviar</button> </div> </div><!-- /.modal-content --> </div><!-- /.modal --> }
任何想法有什么問題嗎?
由於將錯誤的模型傳遞給動作Email(ContactModel model)
因此在加載時會出錯。 當您進行ajax發布時,模型聯編程序會驗證模型並將錯誤添加到模型狀態。
要解決此問題,請執行以下操作:
public async Task<ActionResult> Email(ContactModel model)
{
ModelState.Clear();
return PartialView("_Contact", model);
}
讓我知道是否有幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.