2010-07-09 54 views
0

我有一個部分視圖(如下)的MVC應用程序。當我添加Html.EnableClientValidation()時,我的字段在退出時消失。我不希望任何人從代碼中找出它,但如果有人看到了這樣的行爲,並且可以指引我正確的方向,我會很感激。與此同時,我將開始一塊一塊地重建,看看我能看到什麼,並將回報。EnableClientValidation導致字段消失

謝謝!

<%= Html.ValidationSummary() %> 
<% Html.EnableClientValidation(); // IMPORTANT: this line MUST be *before* Html.BeginForm() block %> 
<% using (Ajax.BeginForm("Save", "Items", new AjaxOptions { HttpMethod = "post", InsertionMode = InsertionMode.Replace, UpdateTargetId = "ItemPane"})){%> 
<%=Html.AntiForgeryToken()%> 
<%=Html.Hidden("Item.Id", (ViewData.Model.Item != null) ? ViewData.Model.Item.Id : Guid.Empty)%> 
<!--more hidden items elided--> 
    <table> <!--yes, I know it should be divs--> 
     <tr> 
      <td rowspan="2" width="400px"> 
      <div class="formarea"> 
      <fieldset> 
       <ol> 
        <li> 
         <label id="Item_Label"><%= (ViewData.Model != null && ViewData.Model.Item != null) ? String.Format("Item Number {0} v. {1}", ViewData.Model.Item.ItemNumber, ViewData.Model.Item.Iteration) : "New Item" %></label> 
        </li> 
        <li> 
         <label for="Item_Prompt" class="formLabel">Directions:</label> 
         <%=Html.TextAreaFor(t => t.Item.Directions, 3, 50, new { @class = "text2000", @maxlength = "2000" })%> 
         <%= Html.ValidationMessageFor(t => t.Item.Directions, "*")%> 
        </li> 
        <li> 
         <label for="Item_Prompt" class="formLabel">Prompt:</label> 
         <%= Html.TextBoxFor(model => model.Item.Prompt, new { @class = "text200", @maxlength = "200" })%> 
         <%= Html.ValidationMessageFor(model => model.Item.Prompt, "*")%> 

        </li> 

我有以下腳本引用:

<%= Html.Script("~/Scripts/MicrosoftAjax.debug.js") %> 
<%= Html.Script("~/Scripts/MicrosoftMvcAjax.debug.js") %> 
<%= Html.Script("~/Scripts/jquery-1.4.2.min.js") %> 
<%= Html.Script("~/Scripts/jquery-ui-1.8.2.custom.min.js") %> 
<%= Html.Script("~/Scripts/jquery.form.js") %> 
<%= Html.Script("~/Scripts/MicrosoftMvcValidation.js") %> 
+0

注意的問題:這種情況我是否使用Html.BeginForm()或Ajax.BeginForm() – sydneyos 2010-07-09 00:31:02

回答

0

想通了 - 這是從以前的調戲這個CSS與this code

/------ -------------------------------------------------- - ASP.NET MVC FRAMEWORK DEFAULT CSS CLASS NAMES ------------------------------------- ---------- -----------/ .error,.field-validation-error {color:red}

.input-validation-valid,.field-validation-valid,.validation-summary -valid {display:none} .input-validation-error {background-color:#fee; border:1px solid red; outline:none} 。input-validation-error:focus {outline:none} input [type =「text」]。input-validation-error:focus,select.input-validation-error:focus {outline:none}

.validation-彙總錯誤{顏色:紅} .validation-彙總錯誤跨越{字體重量:700} .validation-彙總錯誤UL {列表樣式:內盤} .validation- summary-errors ul li {font-weight:normal} .validation-summary-errors ul li標籤,.validation-summary-errors ul li span {display:inline!important; font-weight:normal}

0

我有同樣的問題。

只需將textboxfor和validationmessagefor分隔爲兩個不同的div。

問題是,刪除父母的validationmessage,這就是爲什麼領域消失。有兩個簡單的div validationmessagefor無法訪問以前的div。

這將解決我希望