السبب أن النموذج قد يحوي على قيم إدخال خاطئة مثلًا قد تكون القيمة المدخلة في TextBox قيمة نصيّة String والحقل يتطلّب قيمة عدد صحيح integer وذلك لأنه في الـ MVC يتم التحقق من القيم المدخلة في الحقول ومقارنتها بالقيم المسندة إليها مثال إذا أدخلت في الحقل التالي قيمة String وهو حقل يجب أن يُكتب فيه قيمة السعر وهو عدد حقيقي فلن تكون قيمة ModelState.IsValid تساوي True:
@Html.TextBoxFor(model => model.Product.ProductPrice)
لمعرفة ما هي القيم الغير صحيحة التي تم إدخالها في النموذج استخدم الشيفرة التالية قبل جملة
if (ModelState.IsValid) وقم بتحديد break point وعمل Debug كما في المثال التالي:
var errors = ModelState.Values.SelectMany(v => v.Errors);
ستظهر لك الأخطاء في الـ ErrorMessage
بالتوفيق