在使用MVC 4的出租車預訂系統中,我在Home-> Index中使用局部視圖來顯示Quick Book部分。在該佈局中,我使用以下代碼來呈現局部視圖:ASP.NET MVC在局部視圖中通過ModelState.AddModelError顯示錯誤
@{Html.RenderAction("CategoryMenu", "Search");}
的SearchController的CategoryMenu動作是:
[ChildActionOnly]
public ActionResult CategoryMenu()
{
var searches = new QuickSearch();
return PartialView(searches);
}
的快速搜索模式是:
public class QuickSearch
{
public int CatId { get; set; }
[DisplayName("Pickup date")]
[Required(ErrorMessage = "Pickup Date is required.")]
public string PickupDate { get; set; }
[DisplayName("Cab Type")]
[Required(ErrorMessage = "Category is required.")]
public int CabCategory{ get; set; }
public static IEnumerable<Category> Categories = new List<Category> {
new Category {
CategoryId = 1,
Name = "Economy"
},
new Category {
CategoryId = 2,
Name = "Midsize"
},
/*Other categories*/
};
}
最後,在CategoryMenu.cshtml文件的部分視圖中,我將QuickSearch模型發送給SearchController的SearchByDate操作。在SearchByDate操作中,我希望確保分揀日期不早於當前日期。我創建了一個AppHelper.CheckDate()方法來驗證需求。 但是,我無法在首頁索引中存在的分部視圖中顯示較早取件日期的錯誤消息。在SearchByDate動作,我試過如下:
if (!AppHelper.CheckDate(model.PickupDate))
{
ModelState.AddModelError("", "Date cannot be before the current date.");
return PartialView("CategoryMenu");
}
然而,整個CategoryMenu視圖是越來越顯示與錯誤信息,而不是應該得到顯示在主頁索引的局部視圖的錯誤消息。任何幫助將不勝感激。
您在哪裏放置了驗證摘要?父視圖。? –
CategoryMenu.cshtml文件中沒有:@ Html.ValidationSummary(true) – user2693135