Tôi gặp sự cố lạ về trình chỉnh sửaĐối với trình trợ giúp từ MVC3. Đây là điều: tôi đang cố gắng để hiển thị một checkboxList và nó hoạt động nếu tôi không gọi explicity tên mẫu. Tuy nhiên nếu tôi cố gắng sử dụng tên mẫu, nó ném một ngoại lệ nói rằng tôi đang cố gắng để vượt qua một danh sách chung khi tôi chỉ cần vượt qua viewModel của tôi. Tôi sẽ chỉ cho một số mã để làm cho nó dễ hiểu hơn:Trình soạn thảo asp.net-mvc3 Đối với vấn đề tên mẫu
ViewModel
public class ChkViewModel
{
public string ContractName {get;set;}
public string Contract {get;set;}
public bool Checked {get;set;}
}
Các EditorFor Template (nó được gọi là ContractTemplate)
@model Models.ChkViewModel
<p>
@Html.HiddenFor(x => x.Contract)
@Html.LabelFor(x => x.ContractName , Model.ContractName)
@Html.CheckBoxFor(x => x.Checked, new { @class = "chkContract" })
</p>
Trích từ quan điểm của tôi
<div id="contractContainer">
@Html.EditorFor(item=>item.ContractList)
</div>
Điều này hoạt động tốt. Nhưng nó cố gắng để làm điều này:
<div id="contractContainer">
@Html.EditorFor(item=>item.ContractList, "ContractTemplate")
</div>
Nó ném InvalidOperationException
nói rằng tôi phải vượt qua một ChkViewModel đơn giản và không phải là một GenericList ChkViewModel.
Tôi chỉ hỏi điều này vì tôi đã cố gắng tạo danh sách kiểm tra khác và tôi không thể làm cho nó hoạt động (thậm chí không hiển thị hộp kiểm) và khi tôi cố gắng đặt tên mẫu, để tôi có thể xem các hộp kiểm, nó ném lỗi đó.
tại sao bạn muốn chỉ định tên mẫu? – epzee
Như tôi đã đề cập ở đoạn cuối, tôi không cần nó trước nhưng khi tôi cố gắng tạo một ví dụ khác, nó không hoạt động. Bên cạnh đó, nếu đó là một tham số, tại sao không nên sử dụng nó? Nó sẽ không tốt hơn để biết tôi đang sử dụng mẫu nào, cụ thể? – AdrianoRR