簡體   English   中英

MVC Bootstrap部分視圖ValidationMessageFor在加載頁面上執行

[英]MVC Bootstrap Partial View ValidationMessageFor execute on loading Page

我正在做一個MVCBootstrap 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM