2012-08-31 18 views
6

Chúng tôi vừa mới nâng cấp một .NET hiện có 4 MVC 3 dự án .NET 4.5 và MVC 4.Làm thế nào để làm việc xung quanh thay đổi phá vỡ MVC4 tại như thế nào nó ám bools trong một cái nhìn

đâu chúng tôi đã có các loại điều này trong một view:

@Model.MyBool 
<input type="hidden" name="foo" value="@Model.MyBool" /> 

rằng dùng để biểu hiện như:

True 
<input type="hidden" name="foo" value="True" /> 

hay:

False 
<input type="hidden" name="foo" value="False" /> 

Nhưng bây giờ nó ám như:

True 
<input type="hidden" name="foo" value="value" /> 

hay:

False 
<input type="hidden" name="foo" /> 

Đó là, nơi một tài sản boolean được trả lại trong giao diện như giá trị của thuộc tính giá trị của một đầu vào ẩn, nó doesn' t hiển thị là True hoặc False (giống như ở nơi khác), nhưng thay vì hiển thị là value hoặc bỏ qua toàn bộ thuộc tính.

Hai câu hỏi:

  1. WTF?
  2. Có cách nào dễ dàng để tôi có thể khắc phục vô số địa điểm mà điều này đã phá vỡ đơn đăng ký của tôi không? Đó là một ứng dụng lớn và tôi không ưa thích trawling thông qua mọi quan điểm duy nhất để cố gắng để xác định ở khắp mọi nơi tôi đặt một bool vào một lĩnh vực đầu vào.

Trả lời

3

WTF?

Razor 2 conditional attributes

Có một cách tốt đẹp dễ dàng tôi có thể sửa chữa vô số những nơi mà điều này đã phá vỡ ứng dụng của tôi?

Không, tôi có thể nghĩ (đó là lý do bạn nên sử dụng @Html.Hidden("foo", Model.MyBool)). Đoán tốt nhất của tôi sẽ sử dụng một cái gì đó như Resharper's Structured Replace.

+0

xấu hổ. Tôi có xu hướng không sử dụng 'Html.Hidden (...)' bởi vì tôi không muốn một 'id' trên hiddens của tôi (có rất nhiều trường hợp của cùng một phần Xem trên cùng một trang). Và cách tôi viết nó làm cho mã dễ đọc hơn, imho. Vâng, đó là lý do của tôi anyway. Cảm ơn. – teedyay

+0

@teedyay có gì sai khi có 'id' trên mọi ẩn? –

+0

Bởi vì tôi có nhiều trường hợp có cùng một khung nhìn, điều đó sẽ cho tôi nhiều phần tử với cùng một 'id', điều đó không tốt đẹp. – teedyay

2

trông như thế này đang làm việc:

<input type="hidden" name="foo" value="@Model.MyBool.ToString()" /> 
+0

Vâng, đó là cách để khắc phục một ví dụ. Tôi đã hy vọng sẽ có một cách để thay đổi hành vi trở lại cho toàn bộ trang web nên tôi không phải truy lùng qua mọi cảnh để tìm khắp mọi nơi tôi cần thay đổi điều này. – teedyay

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