Asp.net-Mvc
專注於 ASP.NET MVC 模型錯誤
我有一個模型可以進行一些驗證檢查並將錯誤添加到 ModelState:
ViewData.ModelState.AddModelError("mycontrol", "message")它們在視圖端顯示得很好,但是有沒有辦法將焦點設置到與驗證消息對應的控制項上?現在,頁面刷新並停留在頁面的頂部,所以如果錯誤出現在頁面的末尾,使用者就不清楚發生了什麼。
注意:另一種解決方案是 ValidationSummary 在頁面頂部顯示錯誤列表,但我一直無法讓它顯示任何內容。我所有的錯誤都通過 ValidationMessage 顯示。
**編輯:**我發現我的 ValidationSummary 有問題。我的標記是:
<% Html.ValidationSummary()%>應該是:
<%=Html.ValidationSummary()%>但是,我仍然想知道如何捕捉到錯誤的欄位。
滾動到第一個輸入時出現錯誤的一些 jquery 優點。棘手的一點是,您必須在呼叫 focus() 之前獲取底層 DOM 元素,因為 jQuery 對像上的 focus() 方法會觸發焦點事件,而不是將焦點賦予元素。
<script type='text/javascript'> $(document).ready( function() { var input = $('.input-validation-error:first'); if(input) { input.focus(); } }); </script>
您可以使用 JavaScript 在頁面上查找添加了 MVC 驗證 HTML 類 (input-validation-error) 的輸入元素,並將克拉移到第一個。儘管我還沒有測試過,但 / 應該 / 將螢幕移動到該元素。
諸如 jQuery 之類的 JS 庫將使這一切變得簡單。