当我通过Visual Studio运行我的项目时,我有一些数据表示法工作得很好,但是当我在IIS上运行与发布项目相同的项目时,使用与我在Visual Studio中运行时相同的设置,数据表示法被忽略。看:
// my entity
[StringLength(1)]
[Required(ErrorMessageResourceType = typeof(MyResources), ErrorMessageResourceName = "CampoObrigatorio")]
public string MYPARAM { get; set; }// my View
@Html.TextBoxFor(model => model.MYPARAM )// rendered DOM running by Visual Studio =]
<input data-val="true" data-val-length="just 1" data-val-length-max="1" data-val-required="Este campo é obrigatório." id="MYPARAM " name="MYPARAM " type="text" value="" aria-required="true">// rendered DOM running by a published area =[
<input id="MYPARAM" name="MYPARAM" type="text" value="">有人知道为什么我发布的项目没有将所有这些“数据内容”呈现为我的本地项目吗?
发布于 2020-02-21 01:31:23
由于某些原因,在您发布的环境中,ClientValidationEnabled被设置为false。这可以在整个项目的Web.config中设置,缺省值为true。
添加以下AppSettings密钥,或者从false找到并修改为true
<add key="ClientValidationEnabled" value="true"/>
<add key="UnobtrusiveJavaScriptEnabled" value="true"/>或者您可以在特定视图中单独设置它。
@{
Html.EnableClientValidation(true);
}这将向您的输入字段添加data-val-属性;请确保您已经将jQuery-validation脚本也添加到了适当的视图中,否则数据注释仍然不会被强制执行。
https://stackoverflow.com/questions/60321821
复制相似问题