Javascript ASP.NET MVC4赢得';如果第一次提交时有错误,则不能提交客户端验证
我有一个简单的设置,但不明白为什么这不工作。以下是我的设置:Javascript ASP.NET MVC4赢得';如果第一次提交时有错误,则不能提交客户端验证,javascript,asp.net-mvc,razor,asp.net-mvc-4,Javascript,Asp.net Mvc,Razor,Asp.net Mvc 4,我有一个简单的设置,但不明白为什么这不工作。以下是我的设置: MVC4 Html.EnableUnobtrusiveJavaScript()和 Html.EnableClientValidation()已启用 jQuery 1.6.2, jquery.validate.min.js和jquery.validate.unobtrusive.min.js 参考 没有绑定到表单或按钮提交的事件 问题是,它似乎在客户端工作,在客户端我可以提交一个表单,并显示相应的验证错误。然而,当我正确地填写表单并
- MVC4
- Html.EnableUnobtrusiveJavaScript()和 Html.EnableClientValidation()已启用
- jQuery 1.6.2, jquery.validate.min.js和jquery.validate.unobtrusive.min.js 参考
- 没有绑定到表单或按钮提交的事件
@model AscendOne.CareOne.Mvc.Models.ResourceGuideUserModel
@*Form*@
<form id="guide-download-submit" method="get" action="/leads/" target="_blank">
@{
Html.EnableUnobtrusiveJavaScript();
Html.EnableClientValidation();
}
@Html.ValidationSummary()
@if (Model.CampaignID != null)
{<input type="hidden" name="CampaignID" value="@Model.CampaignID" />}
@if (!String.IsNullOrWhiteSpace(Model.PDFUrl))
{<input type="hidden" name="RedirectUrl" value="@Model.PDFUrl" />}
<fieldset>
@Html.FormFieldFor(m => m.FirstName)
@Html.FormFieldFor(m => m.LastName)
@Html.FormFieldFor(m => m.Email)
</fieldset>
<button type="submit">Download The Guide</button>
</form>
public class ResourceGuideUserModel
{
public string CampaignID { get; set; }
public string PDFUrl { get; set; }
[Required]
[DisplayName("First Name:*")]
public string FirstName { get; set; }
[Required]
[DisplayName("Last Name:*")]
public string LastName { get; set; }
[Required]
[DisplayName("Email Address:*")]
public string Email { get; set; }
}
@model AscendOne.CareOne.Mvc.Models.ResourceGuideUserModel
@*形式*@
@{
Html.EnableUnobtrusiveJavaScript();
Html.EnableClientValidation();
}
@Html.ValidationSummary()
@如果(Model.campaid!=null)
{}
@如果(!String.IsNullOrWhiteSpace(Model.PDFUrl))
{}
@Html.FormFieldFor(m=>m.FirstName)
@Html.FormFieldFor(m=>m.LastName)
@Html.FormFieldFor(m=>m.Email)
下载指南
公共类ResourceGuideUserModel
{
公共字符串活动ID{get;set;}
公共字符串PDFUrl{get;set;}
[必需]
[DisplayName(“名字:”)]
公共字符串名{get;set;}
[必需]
[显示名称(“姓氏:”)]
公共字符串LastName{get;set;}
[必需]
[显示名称(“电子邮件地址:”)]
公共字符串电子邮件{get;set;}
}
嗯,原来是我的错。谢谢你的回复。似乎在第一次尝试后,另一个隐藏得很深的脚本杀死了我的表单提交。删除此选项解决了问题。再次感谢。无论填写哪个字段还是留空,您都会得到完全相同的结果吗?我添加了模型。无论我按什么顺序填写,结果都是一样的。它仍然显示我在正确输入所有字段之前收到的最后一条验证消息。当我提交时,它好像只是返回false。表单属性操作和目标看起来可疑。它们都是正确的/必要的吗?@Nick-用户应该提交表单,然后将它们转换为PDF格式。它在一个新窗口中打开,/leads/controller是一个GET请求。为什么要使用手动创建的表单元素?为什么不使用Begin?你的行动方法是什么样子的?您是否使用了类似Fiddler的Http记录器来查看请求是否提交到服务器?