【问题标题】:Data notations are not rendered in publish mode数据符号不在发布模式下呈现
【发布时间】:2020-02-20 14:08:38
【问题描述】:

当我通过 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="">

有人知道为什么我发布的项目没有将所有这些“数据”呈现为我的本地项目吗?

【问题讨论】:

    标签: asp.net asp.net-mvc visual-studio publish entities


    【解决方案1】:

    由于某种原因,ClientValidationEnabled 在您的已发布环境中设置为 false。这个可以在整个项目的Web.config中设置,默认为true

    添加以下AppSettings 键,或查找并从false 修改为true

    <add key="ClientValidationEnabled" value="true"/>
    <add key="UnobtrusiveJavaScriptEnabled" value="true"/>
    

    或者您可以在特定视图中单独设置。

    @{
        Html.EnableClientValidation(true);
    }
    

    这会将data-val- 属性添加到您的输入字段;确保您已将 jQuery 验证脚本也添加到相应的视图中,否则仍不会强制执行数据注释。

    【讨论】:

    • 完美!像魅力一样工作。非常感谢。
    • 很高兴我能帮助@user3347220!如果可以,请将答案标记为已接受;它可以帮助处于类似情况的其他人。
    猜你喜欢
    • 2018-04-07
    • 1970-01-01
    • 1970-01-01
    • 2012-09-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多