2014-03-28 45 views
0

我想將我的ValidationMessageFor分組放在頁面頂部,而不是在每個編輯/文本框之後。MVC 4組驗證消息

是否有可能做這樣的事情或有任何其他方式來實現我的想法?

@Html.Partial("_PartialView", MyModel)

@model MyModel 
@foreach (var item in Model) 
{ 
    @Html.ValidationMessageFor(item) 
} 

而不是做這個的:

@Html.ValidationMessageFor(model => model.Foo) 
@Html.ValidationMessageFor(model => model.Bar) 
@Html.ValidationMessageFor(model => model.etc.. 
+0

檢查了這個... http://stackoverflow.com/questions/21529880/validation-is-only-applied-to-the-first-item-of-an-array – foxtrotZulu

回答

1

我覺得這兩個步驟是足夠

1. Remove the Html.ValidationMessageFor() 
2. Add Html.ValidationSummary(false, "Your custom summary message") inside using(html.BeginForm() 
+0

後續問題:是否有可能得到這些消息觸發的JavaScript?我發現這個在Html.ValidationMessageFor()'$('input [data-val = true]')上工作。 '(現在它只會使文本框邊框變爲紅色) – Rob

+0

yup..you can try unobtrusive ..http://stackoverflow.com/questions/8538082/asp-net-mvc-3-required-steps-for-unobtrusive-client側的驗證-的動態 –

2

我想你可能會尋找

@Html.ValidationSummary()