Tôi đã tạo một bảng trong cơ sở dữ liệu có System.Guid làm khóa chính. Mô hình khung thực thể ADO.Net được yêu cầu đã được tạo và các thủ tục được lưu trữ cần thiết đã được ánh xạ.Sử dụng System.Guid làm khóa chính trong ASP.Net MVC?
Tôi đã tạo bộ điều khiển mới và thêm mã yêu cầu cơ bản cho Tạo và chỉnh sửa cho dữ liệu. Tuy nhiên khi nhấp vào liên kết để chỉnh sửa một kỷ lục đặc biệt là các lỗi sau đây được tạo:
The parameters dictionary contains a null entry for parameter '[MyId]' of non-nullable type 'System.Guid' for method 'System.Web.Mvc.ActionResult Edit(System.Guid)' in '[MySite].[MyController].[SpecificController]'. To make a parameter optional its type should be either a reference type or a Nullable type. Parameter name: parameters
Tóm lược sửa đổi hành động được khai báo trong bộ điều khiển như sau:
public ActionResult Edit(Guid itemId)
{
return View();
}
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Edit(MyItem itemToModify)
{
}
Khi thêm mới ghi lại Guid mới được tạo ra thông qua một thủ tục lưu trữ và danh sách hiển thị đúng Guid. Url cũng chuyển đúng Guid để truy xuất.
Tôi dường như không thể nắm bắt được điểm mà tại đó điều này không thành công, nhưng làm thế nào tôi có thể đi qua một System.Guid như một tham số cho Controller?
Bây giờ tôi cảm thấy ngu ngốc khi hỏi: ( – BinaryMisfit
Đừng lo lắng về điều đó - lý do duy nhất tôi biết câu trả lời là tôi đã làm điều tương tự một lần và phải tính toán nó ra. – tvanfosson