MVC 4 MetaClass标记未显示在部分视图中

时间:2014-07-02 16:39:18

标签: asp.net-mvc asp.net-mvc-4

我有一个View,它根据数据库在加载时加载一些部分视图。到目前为止,它有一个很好的工作,只有一个例外:因为这是数据库的第一种情况,我使用元类将适当的标记添加到模型字段中。当我将所有内容放在一个页面上时,它工作得非常好但是由于我将其分解为部分内容,因此它拒绝识别元类。

到处都有很多不相关的代码,所以我打破了重要的东西(有些名字已被修改以保护无辜者)...

在视图中加载所述部分:

foreach (var p in MyProject.Controllers.UtilityController.GetPViews())
    { 
        @Html.Partial("../Partial/" + p.ViewName, new ViewDataDictionary { { "column", "column" + p.ColumnSize } })
    }

元类的主要部分:

namespace MyProject.Models
{
    public class MyProjectData_Meta
{
    [MetadataType(typeof(MyProjectData_Meta))]
    public partial class MyProjectData
    {
        public class MyProjectData_Meta
        {
             //Gets and sets and stuff. For example:
            [Required(ErrorMessage = "Please enter a first name.")]
            [Display(Name = "First Name")]
            [UIHint("FloatLabel")]
            public string MemberFirstName { get; set; }
        }
    }
 }
 }

最后是从所述数据库中提取列表的代码......

public static List<ModuleList> GetPViews()
    {
        MyProjectEntities pv = new MyProjectEntities();
        List<ModuleList> lvl = pv.ModuleLists.OrderBy(s => s.PageOrder).ToList();

        return lvl;
    }

为了告诉我愚蠢的地方,我还缺少一些明显缺失的细节或者你需要的更多信息吗?

编辑:Doh!忘了放入我的实际视图代码:

@model MyProject.Models.MyProjectData

<div class="@ViewBag.column">
<fieldset id="fsBasic">
    <legend>Basic Information</legend>
    <div class="editor-label">
        @Html.LabelFor(model => model.MemberFirstName)
    </div>
    <div class="editor-field">
        @Html.EditorFor(model => model.MemberFirstName)
        @Html.ValidationMessageFor(model => model.MemberFirstName)
    </div>
</div>

回答另一个问题:我知道它没有使用元类,因为LabelFor正在显示&#34; MemberFirstName&#34;而不是&#34;名字&#34;当我没有使用部分类时,它实际上做了什么。

0 个答案:

没有答案