0

在使用嵌入其他模型的模型时,我遇到了很多问题(验证、序列化),我只是想知道之前是否有人收到过此类问题。例如,我有一个附有以下模型的查询表:

模型

namespace
{
    public class EnquiryStudent
    {
        public enquiry enquiry { get; set; }
        public student student { get; set; }        
    }
}

查询和学生模型(嵌入在查询学生中)是从数据库自动生成的(我使用的是数据库优先方法)。

例如,我在这里遇到的一个问题是我使用视图来显示基于上述模型的表单:

看法

@using (@Html.BeginForm())
{
    <div>
        <fieldset>
            <fieldset>
                <legend>Enquiry</legend>
                <div class="editor-label">
                    @Html.LabelFor(m => m.student.firstname)
                </div>
                <div class="editor-field">
                    @Html.TextBoxFor(m => m.student.firstname)
                    @Html.ValidationMessageFor(m => m.student.firstname)
                </div>
                <div class="editor-label">
                    @Html.LabelFor(m => m.student.surname)
                </div>
                <div class="editor-field">
                    @Html.TextBoxFor(m => m.student.surname)
                    @Html.ValidationMessageFor(m => m.student.surname)
                </div>
                <div class="editor-label">
                    @Html.LabelFor(m => m.student.email)
                </div>
                <div class="editor-field">
                    @Html.TextBoxFor(m => m.student.email)
                    @Html.ValidationMessageFor(m => m.student.email)
                </div>
                <div class="editor-label">
                    @Html.LabelFor(m => m.enquiry.subject)
                </div>
                <div class="editor-field">
                    @Html.TextBoxFor(m => m.enquiry.subject)
                    @Html.ValidationMessageFor(m => m.enquiry.subject)
                </div>
                <div class="editor-label">
                    @Html.LabelFor(m => m.enquiry.enquiry_text)
                </div>
                <div class="editor-field">
                    @Html.TextAreaFor(m => m.enquiry.enquiry_text)
                    @Html.ValidationMessageFor(m => m.enquiry.enquiry_text)
                </div>
            </fieldset>
            <p>
                <input type="submit" class="rounded-button-gray-shades" value="Send" />
            </p>
        </fieldset>
    </div>
}

并且客户端验证适用于除查询文本之外的所有内容(EnquiryStudent 模型中嵌入式查询的属性,即它不验证此客户端仅服务器端?

现在更奇怪的是,如果我将 enquiry_text 更改为 TextBoxFor 而不是 TextAreaFor 它工作得很好。或者,如果我通过向 EnquiryStudent 模型(未嵌入在另一个模型中)添加一个虚拟字段来为另一个实体创建一个文本区域,它可以正常工作。

有人可以解释一下,就像我说的那样,这不是我在这种模特关系中遇到的唯一怪癖。

谢谢,

4

0 回答 0