实际上我在c#MVC4架构中工作,我也在使用newget,我在我的应用程序中安装tinymce包,在公司模型属性名称中,AboutCompany和Company配置文件具有必需的注释,但它不在客户端工作。
请参阅以下代码 这是我的模特。
public class BusinessProfile
{
[Required(ErrorMessage = "Please enter About Company")]
[Display(Name = "About Company : ")]
[UIHint("tinymce_jquery_full"), AllowHtml]
public string txtAboutCompany { get; set; }
[Required(ErrorMessage = "Please enter Company Name")]
[Display(Name = "Company Name : ")]
public string companyname{get;set;}
}
这是我的视图意味着HTML代码
<div>
@Html.LabelFor(model => model.txtBusinesstitle, new { @class = "required" })
@Html.EditorFor(model => model.txtBusinesstitle)
@Html.ValidationMessageFor(model => model.txtBusinesstitle)
</div>
当我提交此表单时,验证消息不会显示特定消息, 我也加载了jquery包,并提供了脚本但不能正常工作
@section Scripts {
@Scripts.Render("~/bundles/jqueryval")
}
答案 0 :(得分:0)
您必须从webconfig文件启用客户端验证和不显眼的验证。
<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />
还要检查您使用此捆绑包引用〜/ bundles / jqueryval 的脚本。
并检查您的浏览器会抛出哪些js错误。
答案 1 :(得分:0)
您可能必须创建自定义jquery验证程序。 必需属性的工作方式是它依赖于jquery验证插件。
如果查看生成的html源代码,您将看到帮助器(例如Html.EditorFor)为使用Required注释的属性生成的输入将具有class =“required”或仅需要一个属性在他们。
jquery验证通过jquery选择器(这是不引人注目的部分)来获取它们
我敢打赌,tinymce包的model属性没有使用 EditorFor 或等效的帮助器进行渲染。您仍然可以使用jquery验证思想。如果它只是一个普通的输入(我不太熟悉tinymce),只要确保它有class =“required”或者只是一个必需的属性(两者都可以)。
如果它不是正常输入,您始终可以创建自己的jquery验证器。这是一个非常简单的例子:
$.validator.addMethod("custom", function(value){
return value != "1";
}, "default custom error message");
你使用它的方式只是放置class =“custom”或者只是这样做
<input name="x" custom/>
这是一个fiddle that shows the above example working,还有一个更精细的展示{h} {/ 3>}。
control highlights and other nice features of jquery validation
答案 2 :(得分:0)
您需要在jQuery表单中包含值。
MVC验证要求验证字段位于使用任何Html.BeginForm()
重载创建的MVC表单内,因为它需要FormContext
See this Q&A from more info。
您还需要确保在web.config
中启用了客户端验证:
<appSettings>
<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />
</appSettings>