Cân nhắc điều khiển đơn giản này:Kiểm tra để xem nếu ViewBag có một tài sản hay không, để có điều kiện tiêm JavaScript
Porduct product = new Product(){
// Creating a product object;
};
try
{
productManager.SaveProduct(product);
return RedirectToAction("List");
}
catch (Exception ex)
{
ViewBag.ErrorMessage = ex.Message;
return View("Create", product);
}
Bây giờ, trong Create
quan điểm của tôi, tôi muốn kiểm tra ViewBag
đối tượng, để xem nếu nó có Error
tài sản hay không. Nếu nó có thuộc tính lỗi, tôi cần phải tiêm một số JavaScript vào trang, để hiển thị thông báo lỗi cho người dùng của tôi.
Tôi tạo ra một phương pháp mở rộng để kiểm tra này:
public static bool Has (this object obj, string propertyName)
{
Type type = obj.GetType();
return type.GetProperty(propertyName) != null;
}
Sau đó, trong giao diện Create
, tôi đã viết dòng mã này:
@if (ViewBag.Has("Error"))
{
// Injecting JavaScript here
}
Tuy nhiên, tôi nhận được lỗi này:
Cannot perform runtime binding on a null reference
Bất kỳ ý tưởng nào?
'ViewBag' là null? –
Mã nào thực sự tạo ra lỗi đó? –
@JohnSaunders, như bạn thấy tôi đã đặt 'ViewBag.Error' trong bộ điều khiển của tôi? Làm thế nào nó có thể được null? –