3

我有一份问卷,由多页 12 条语句组成,用户必须为每一个语句指定语句与它们匹配的程度。看起来像这样:

问卷

我的视图模型如下所示:

public class PageViewModel
{
    public List<ItemViewModel> Items { get; set; }
}

public class ItemViewModel
{
    public Guid Id { get; set; }
    public int Number { get; set; }
    public string Text { get; set; }

    [Required]
    public int Response { get; set; }
}

而我的观点:

@model PageViewModel

@using(Html.BeginForm()){
<table>
    <tr>
        <td></td>
        <td></td>
        <th>1</th>
        <th>2</th>
        <th>3</th>
        <th>4</th>
        <th>5</th>
    </tr>

    @Html.EditorFor(model => model.Items)

    @Html.ValidationSummary(false)

</table>

<input type="submit"/>
}

并且为每个项目重复编辑器模板:

@model ItemViewModel

<tr>
    <td>@Model.Number:</td>
    <td>@Model.Text</td>

    @for(int i = 1; i <= 5; i++){
        <td>@Html.RadioButtonFor(model => model.Response, i)</td>
    }
<tr>

我希望验证摘要能列出需要回复的语句,例如。“声明 6 需要答复”。目前它只是重复“需要响应字段”

我应该想象一个自定义验证器是必需的,但目前从头开始编写我自己的验证器有点超出我的能力,所以任何帮助将不胜感激。

4

1 回答 1

0

您需要编写自己的自定义验证摘要模板

namespace System.Web.Mvc
{
    public static class ViewExtensions
    {
        public static string MyValidationSummary(this HtmlHelper html, string validationMessage)
        {
            if (!html.ViewData.ModelState.IsValid)
            {
                return "customized message from here";
            }

            return "";
        }
    }
}

另请参阅 -如何在 ASP.NET MVC 中扩展 ValidationSummary HTML Helper?

于 2014-03-03T11:21:22.317 回答