MVC3在模型中嵌入模型

时间:2013-02-21 13:00:13

标签: asp.net-mvc-3

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

模型

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而不是TextArea,那就更奇怪了。 或者,如果我通过向EnquiryStudent模型添加虚拟字段(未嵌入另一个模型)为另一个实体创建文本区域,则可以正常工作。

有人可以说明一点,就像我说这不是我与这种模特关系中唯一的怪癖。

谢谢,

0 个答案:

没有答案