【发布时间】:2014-12-31 21:22:59
【问题描述】:
我的 WCF 服务中有一个类似于以下内容的元数据文件:
Imports System.ComponentModel.DataAnnotations
Imports Microsoft.AspNet.Identity.EntityFramework
Imports System.Globalization
Imports Microsoft.AspNet.Identity
Imports System.Collections.Generic
Imports System.Linq
Imports System.Web
Imports System.Web.Mvc
<MetadataType(GetType(gpsData.Metadata))>
Partial Public Class gpsData
Friend NotInheritable Class Metadata
<Required>
<Display(Name:="Project Name:")>
Public Property ProjName As String
.
.
.
End Class
问题是Required 和Display 标签没有被传递给MVC 应用程序,所以字段的验证不起作用,并且显示的名称是数据库中分配的表名。例如,不是显示“项目名称”,而是显示“项目名称”。
编辑:
添加了来自 MVC 应用程序的 .vbhtml 文件代码。我第一次提出问题时应该添加此代码。
@ModelType IUD_FCL_Service.gpsData
@Code
ViewBag.Title = "Survey Input Form"
End Code
<h2>Survey Input Form</h2>
<hr>
@Using (Html.BeginForm("SurveyForm", "GPS", FormMethod.Post, New With {.enctype = "multipart/form-data"}))
@Html.ValidationSummary() @* creates a list of validation messages instead of displaying the messages next to each field *@
@Html.AntiForgeryToken()
Dim fileNameData As String = "Null"
TempData("fileNameData") = fileNameData
@<table class = "col-lg-8">
<tr>
<td>
<div class="editor-label">
@Html.LabelFor(Function(Model) Model.ProjName)
</div>
<div id="projectName" class="editor-field">
@Html.TextBoxFor(Function(Model) Model.ProjName, New With {.class = "form-control"})
@*@Html.ValidationMessageFor(Function(Model) model.ProjName) <--- The Html.ValidationSummary() method at the top now handles these messages.*@
</div>
</td>
.
.
.
【问题讨论】:
-
您确定分部类与目标类位于同一命名空间中吗?
-
@Bjørn-RogerKringsjå,是的
-
那么我真的不知道为什么这不起作用,因为我就是这样做的。哦,好吧,除了
NotInheritable约束,但我无法想象删除它会有什么不同。 -
嗯,值得一试。我将尝试删除约束并查看。
-
不,它没有用,但值得一试。我一定还缺少其他东西。