我有一個添加產品表單,這取決於用戶以前添加了類別,產品類型等。而不是讓他們完成表單,然後意識到他們不能提交,我想在表單第一次加載時顯示錯誤。獲取視圖模型屬性的模型狀態鍵
我想將此錯誤添加到相應的屬性的模型狀態 - 所以我的問題是如何獲得該屬性的模型狀態鍵名稱?
代碼
Model.Step1.PopulateData(_productTypeSvc.GetList(), _websiteSvc.GetMaximumNumberOfProductImages(HttpContext.Request.Url.Host));
Model.Title = "Add A Product - Step 1: The Basics";
if (Model.Step1.ProductTypes.IsNullOrEmpty())
{
//Rather than string.Empty, I want to programmatically get the correct key to add the error to..
//E.g. if it were the view - HtmlHelper.NameFor(m => m.Step1.ProductTypeID)
ModelState.AddModelError(string.Empty, "Please add at least one product type before adding products.");
}
我知道我可以假人的HtmlHelper對象,但我寧願避免這種情況,不知道是否有更好的辦法?
它只是財產的完全合格的名字 - 'ModelState.AddModelError( 「Step1.ProductTypeID」,「請... 「);' –
我知道,但我想強烈地輸入它,而不是一個鬆散的字符串。 – Carl
它沒有過載。你可以創建一個擴展方法並用反射來實現這個表達式。 –