2012-01-13 28 views
6

Tôi đang sử dụng MVC3 với Dao cạo. Đối với đầu vào tôi có hai loại điều khiển:@ Html.TextBoxFor hộp văn bản không được đánh dấu sau khi không xác thực

  1. @Html.TextBoxFor
  2. @Html.TextAreaFor

Cả hai đã yêu cầu xác nhận hiện trường. @Html.TextAreaFor làm nổi bật hộp nếu xác thực không thành công khi @Html.TextBoxFor không.

Đây là mã của tôi

HTML:

@Html.TextBoxFor(m => m.FirstName) 

mẫu:

[Required(ErrorMessage = "First Name is required")] 
public string FirstName { get; set; } 

Tại sao hộp văn bản được tạo ra sử dụng @Html.TextBoxFor không hightlighted khi xác nhận mình không?

+0

@ Html.TextBoxFor – user1148365

+1

là không xác nhận hay không * làm nổi bật *? Nếu nó không làm nổi bật, nó có thể là một vấn đề CSS. –

+0

Đang xác thực nhưng không đánh dấu. CSS? nơi tôi nên nhìn? Tôi không chắc chắn, chỉ có hai khác - DropDownListFor và TextAreaFor đang hiển thị các hộp màu đỏ sau khi xác nhận không thành công nhưng không phải là "TextBoxFor" mà tôi muốn. – user1148365

Trả lời

-1

Để có xác thực phía máy khách, bạn cần đảm bảo rằng bạn có các tập lệnh cần thiết được bao gồm trong Chế độ xem của mình (cho dù đó là thông qua chế độ xem _Layout.cshtml hoặc chế độ xem trực tiếp của bạn). Đặt điều này ở đầu chế độ xem của bạn:

<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script> 
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script> 

Đảm bảo đường dẫn và tên tập lệnh là chính xác. Điều này sẽ cho phép bạn sử dụng xác thực phía máy khách (tức là đánh dấu hộp văn bản).

+0

Tôi có chúng trong _Layout.cshtml của tôi ở đầu trang. Tôi cũng đã thử họ theo quan điểm của tôi. Không may mắn. – user1148365

+0

không bắt buộc. – UMAR

7

Đảm bảo rằng các biến bạn đang gán cho các trường nhập này là [Bắt buộc] trong lớp mô hình của bạn .. Bạn cũng đã loại bỏ bất kỳ css nào trong quy trình "dọn sạch" chưa? Hãy thử thêm điều này nếu nó không có trong đó.

.field-validation-error 
{ 
color: #ff0000; 
} 
.field-validation-valid 
{ 
display: none; 
} 
.input-validation-error 
{ 
border: 1px solid #ff0000; 
background-color: #ffeeee; 
} 
.validation-summary-errors 
{ 
font-weight: bold; 
color: #ff0000; 
} 
.validation-summary-valid 
{ 
display: none; 
} 
1

tôi phải đối mặt với cùng một vấn đề hôm nay:

Để nâng cao xác nhận cho textbox hoặc bất kỳ lĩnh vực khác mà bạn chỉ cần hai dòng sau:

Trong điều khiển: ModelState.AddModelError("ErrorEmail", "Error Message");

Trong xem: @Html.ValidationMessage("ErrorEmail")

Và trong web.config

<appSettings> 
    <add key="ClientValidationEnabled" value="true" /> 
    <add key="UnobtrusiveJavaScriptEnabled" value="true" /> 
    </appSettings> 

Nó ghi đè lên xác thực css với css trang web của riêng tôi vì vậy đó là lý do tại sao nó không hiển thị đường viền màu đỏ xung quanh hộp văn bản.

làm xác nhận lỗi phong cách quan trọng giải quyết vấn đề của tôi:

input.input-validation-error { 
    border: 1px solid #e80c4d !important; 
} 
+0

Valid.css của tôi đã bị ghi đè bởi bootstrap. ! Đã khắc phục sự cố quan trọng. – ADH

0

Thêm cả .input-xác nhận lỗi và các lớp .input.input-xác nhận lỗi.

3

Tôi đã gặp sự cố này. Tôi đã thêm một lớp CSS mới vào tệp Site.css (hoặc bất kỳ kiểu trang nào bạn thích).

textarea.input-validation-error { 
border: 1px solid #e80c4d; 
} 
0

Tôi biết điều này là cũ, nhưng trong trường hợp bất cứ ai khác đang tìm kiếm này, đảm bảo bạn cũng sử dụng

@Html.ValidationMessageFor(m => m.FirstName) 

Sau textbox của bạn

Các vấn đề liên quan