0

我的 asp.net mvc-4 中有以下主视图:-

@model TMS.ViewModels.SwitchJoin

@Ajax.ActionLink("Add Port Info", "CreatePort","Switch",
    new { switchid = Model.Switch.SwitchID },
    new AjaxOptions {
 InsertionMode = InsertionMode.Replace,
 UpdateTargetId = "AssignPort"  ,
 LoadingElementId = "progress"


}
)
</p>
//code goes here


@section Scripts {
    @Scripts.Render("~/bundles/jqueryval")
}

以及以下两个局部视图;-

@model TMS.Models.TMSSwitchPort



@using (Ajax.BeginForm("CreatePort", "Switch", new AjaxOptions

{
    InsertionMode = InsertionMode.InsertAfter,
    UpdateTargetId = "Porttable",
    LoadingElementId = "loadingimag",
    HttpMethod= "POST",
    OnSuccess="submitform"
}))
{
@Html.ValidationSummary(true)
 @Html.HiddenFor(model=>model.SwitchID)
@Html.Partial("_CreateOrEditPort", Model)
 <input type="submit" value="Save" class="btn btn-primary"/>
}

&&&

@model TMS.Models.TMSSwitchPort
 @Html.AntiForgeryToken()
<div>
<span class="f">Device Tag</span> 

@Html.TextBoxFor(model => model.Technology.Tag)
@Html.ValidationMessageFor(model => model.Technology.Tag)                                              


 <span class="f"> Port Number</span>       
@Html.TextBoxFor(model => model.PortNumber)
@Html.ValidationMessageFor(model => model.PortNumber)                                              



</div>

我有以下元类型模型类:-

    public class TMSSwitchPort_Validation
    {

        [Required]

        public string PortNumber { get; set; }


    }
}

但是在 __CreateOrEditPort 部分视图上,所需的验证不会触发?有人可以建议吗?

4

1 回答 1

0

回答 @develiper10214 是对的,但您也写了有关 MetaType 模型类的文章。我问,你想要你的班级的 MetadataType 班级吗?

如果是。你需要注意一些规则。

  1. 您的类和元数据类需要在同一个命名空间中(如果您首先将其用于 EF 数据库和部分模型类中的元数据)。
  2. 与使用元数据类相比,您需要“告诉”您的类。
  3. 类和元数据类中的字段需要相同。

例子:

namespace TMS.Models
{
   public partial class TMSSwitchPort
   {
        public string PortNumber { get; set; }
   }
}

另一类:

namespace TMS.Models
{
    [MetadataType(typeof(TMSSwitchPortMetadata))]
    public partial class TMSSwitchPort
    {
        //Nothing
    }

    public class TMSSwitchPortMetadata
    {
        [Required]
        public string PortNumber { get; set; }
    }
}
于 2013-11-01T09:18:13.297 回答