इस सरल नियंत्रक पर विचार जाँच हो रही है:अगर ViewBag एक संपत्ति है या नहीं यह देखने के लिए, सशर्त जावास्क्रिप्ट
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);
}
अब, मेरी Create
ध्यान में रखते हुए, मैं अगर यह Error
को देखने के लिए ViewBag
वस्तु की जांच करना चाहते हैं संपत्ति या नहीं। अगर इसमें त्रुटि संपत्ति है, तो मुझे अपने उपयोगकर्ता को त्रुटि संदेश दिखाने के लिए, पृष्ठ में कुछ जावास्क्रिप्ट इंजेक्ट करने की आवश्यकता है।
मैं एक विस्तार विधि बनाई गई इस जांच करने के लिए:
public static bool Has (this object obj, string propertyName)
{
Type type = obj.GetType();
return type.GetProperty(propertyName) != null;
}
फिर, Create
ध्यान में रखते हुए, मैं कोड की इस पंक्ति ने लिखा है:
@if (ViewBag.Has("Error"))
{
// Injecting JavaScript here
}
हालांकि, मैं इस त्रुटि मिलती है:
Cannot perform runtime binding on a null reference
कोई विचार?
'ViewBag' रिक्त है? –
वास्तव में कौन सा कोड उस त्रुटि को उत्पन्न कर रहा है? –
@ जॉन सैंडर्स, जैसा कि आप देखते हैं कि मैंने अपने नियंत्रक में 'ViewBag.Error' सेट किया है? यह कैसे शून्य हो सकता है? –