Tôi đang phát triển xác thực phía máy khách và phía máy chủ cho một thuộc tính viewModel nhất định.ValidationMessageĐối với cùng với AddModelError (khóa, tin nhắn). Chìa khóa là gì?
Trong tập tin .cshtml
tôi đặt này:
@Html.DropDownListFor(model => model.EntityType.ParentId, Model.ParentTypeList, "")
@Html.ValidationMessageFor(model => model.EntityType.ParentId)
Trong Controller cho xác nhận kinh doanh
catch (BusinessException e)
{
ModelState.AddModelError("EntityType.ParentId", Messages.CircularReference);
}
Các công trình trên như mong đợi: nếu một ngoại lệ được bắt, thông điệp xuất hiện bên cạnh danh sách thả xuống.
Tuy nhiên, tôi thấy rằng cách này không phải là rất thanh lịch. Trong cshtml
, tôi sử dụng một phương pháp để tạo tất cả thông tin cần thiết về xác thực. Trong bộ điều khiển, tôi phải biết chính xác chuỗi khóa và sử dụng nó.
Không có cách nào tốt hơn để làm điều này?
Liên kết này cung cấp một số thêm thông tin chi tiết và cách không tham chiếu khóa trực tiếp dưới dạng chuỗi nhưng dưới dạng biểu thức: http://stackoverflow.com/questions/11090445/how-to-get-a-modelstate-key-of-an-item-in- a-danh sách heres khác resour ce cung cấp phương thức trình bao bọc cho phím Biểu thức http://stackoverflow.com/questions/8793799/get-reference-to-object-from-c-sharp-expression – bUKaneer