【发布时间】:2014-07-11 13:41:54
【问题描述】:
在使用 MVC 4 的出租车预订系统中,我使用 Home->Index 中的局部视图来显示 Quick Book 部分。在布局中,我使用以下代码来渲染局部视图:
@{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)
-
你能发布你的
CategoryMenu.cshtml吗?
标签: asp.net-mvc