Tôi có mô hình này:MVC 3 chỉnh sửa điểm cho các lĩnh vực nhất định chỉ
public class ExchangeRate
{
[Key]
public int ExchangeRateID { get; set; }
[Required]
[Display(Name = "Currency:")]
public string Currency { get; set; }
[Required]
public decimal Rate { get; set; }
}
Các "Create" xem đang làm việc tốt, nhưng khi tôi trong giao diện chỉnh sửa, tôi chỉ muốn sở hữu ngoại tệ sẽ được hiển thị và không thể chỉnh sửa. Làm thế nào tôi nên làm điều này? Nếu tôi tạo một mô hình "chỉ xem" cho lớp này, thì tôi sẽ bỏ qua thuộc tính "Tiền tệ" và sẽ không thể hiển thị nó.
@using (Html.BeginForm()) {
@Html.ValidationSummary(true)
<fieldset>
<legend>ExchangeRate</legend>
@Html.HiddenFor(model => model.ExchangeRateID)
<div class="editor-label">
@Html.LabelFor(model => model.Currency)
</div>
<div class="editor-field">
@Html.DisplayFor(model => model.Currency)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.Rate)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Rate)
@Html.ValidationMessageFor(model => model.Rate)
</div>
<p>
<input type="submit" value="Save" />
</p>
</fieldset>
}
Thay đổi @ Html.EditorFor (mô hình => model.Currency) để @ Html.DisplayFor (mô hình => model.Currency) không làm việc vì tình trạng mô hình trở nên không hợp lệ khi nó gửi lại cho bộ điều khiển.
Điều này cũng hoạt động kết hợp với trình khởi động Twitter, ví dụ: sử dụng như sau trong khung nhìn: ' @ Html.DisplayFor (m => m.ProductName)' – Manfred
Người dùng có thể không chỉnh sửa các trường đọc thông qua firebug etc? – Sami