我的结果页面包含注册表单。我试图在电子邮件模型上使用客户端验证,但是我不能因为模型类型与我发布的类型不同。
class Results { ... // some results data to display } class EmailSignup { public virtual int Id { get; set; } [required(ErrorMessage = "Please enter your email.")] [DataType(DataType.EmailAddress)] [RegularExpression(@"^(([A-Za-z0-9]+_+)|([A-Za-z0-9]+\-+)|([A-Za-z0-9]+\.+)|([A-Za-z0-9]+\++))*[A-Za-z0-9]+@((\w+\-+)|(\w+\.))*\w{1,63}\.[a-zA-Z]{2,6}$",ErrorMessage = "Please enter a valid email address.")] public virtual string Email { get; set; } }
Results.cshtml
@model MyApp.Results [display results] ... @using (Html.BeginForm("SubmitEmail","AnalysisResults",FormMethod.Post)) { <fieldset> @Html.TextBoxFor( model => model.???? ) </fieldset> }
我想要用户提交的类型是EmailSignup,而不是结果。
解决方法
将表单移动到采用EmailSignup模型的部分视图。