我實際的問題是在這裏:Clinetside regular expression validation in MVC4UIHint和正則表達式註釋不一起工作MVC4
我的模式是:
public partial class PartyRole
{
[UIHint("TextBox")]
[RegularExpression(@"^.{5,}$", ErrorMessage="Minimum 5 characters required")]
[StringLength(50, ErrorMessage="Maximum {2} characters exceeded")]
public string Title { get; set; }
}
我uihint模板(TextBox.cshtml)
@Html.TextBoxFor(m => Model, new {@class="txt"})
如果我不使用UIHint,所有驗證消息都呈現給客戶端。 如果我使用UIHInt,我的正則表達式的驗證屬性在客戶端生成並且驗證正在從服務器發生。
也,我已經重寫了object.cshtml
@functions
{
bool ShouldShow (ModelMetadata metadata)
{
return metadata.ShowForEdit
&& metadata.ModelType != typeof(System.Data.EntityState)
&& !metadata.IsComplexType
&& !ViewData.TemplateInfo.Visited(metadata);
}
}
@if (ViewData.TemplateInfo.TemplateDepth > 1)
{
if (Model == null)
{
@ViewData.ModelMetadata.NullDisplayText
}
else
{
@ViewData.ModelMetadata.SimpleDisplayText
}
}
else
{
ViewData.Clear();
foreach (var prop in ViewData.ModelMetadata.Properties.Where(pm => ShouldShow(pm)))
{
if (prop.HideSurroundingHtml)
{
@Html.Editor(prop.PropertyName)
}
else if (prop.DisplayName == "Id")
{
<div></div>
}
else if (!string.IsNullOrEmpty(Html.Label(prop.PropertyName).ToHtmlString()))
{
<div class="editor-label">@Html.Label(prop.PropertyName)</div>
}
<div class="editor-field">@Html.Editor(prop.PropertyName) @Html.ValidationMessage(prop.PropertyName, "")</div>
}
}
不知道這是否造成任何問題。
有人可以提醒我在這裏做錯了什麼?
非常感謝你..這就像一個魅力!!!!! – mmssaann