Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ASP.NET MVC客户端验证消息错误_C#_Asp.net_Asp.net Mvc_Razor - Fatal编程技术网

C# ASP.NET MVC客户端验证消息错误

C# ASP.NET MVC客户端验证消息错误,c#,asp.net,asp.net-mvc,razor,C#,Asp.net,Asp.net Mvc,Razor,有人能告诉我为什么显示“此字段是必需的”和“请插入数据库名称”而不是“请插入数据库名称” 这是我的模型: public class InstallViewModel { [Required(AllowEmptyStrings = false, ErrorMessage = "Please insert database name")] public string DatabaseName { get; set; } 这是我的观点: <div cl

有人能告诉我为什么显示“此字段是必需的”和“请插入数据库名称”而不是“请插入数据库名称”

这是我的模型:

public class InstallViewModel
    {
        [Required(AllowEmptyStrings = false, ErrorMessage = "Please insert database name")]
        public string DatabaseName { get; set; }
这是我的观点:

<div class="input-group">
    <span class="input-group-addon">Database</span>
    @Html.TextBoxFor(w => w.DatabaseName, new { @class = "form-control", placeholder = "Database name" })
</div>
@Html.ValidationMessageFor(w=> w.DatabaseName)

数据库
@TextBoxFor(w=>w.DatabaseName,新的{@class=“form control”,placeholder=“Database name”})
@Html.ValidationMessageFor(w=>w.DatabaseName)
多谢各位

编辑:

你能看到附加的图像吗?我上传图片时遇到一些问题

视图是局部视图,这是整个局部视图:

@Html.ValidationMessageFor(w => w.DatabaseName)
    <div class="input-group">
        <span class="input-group-addon">Database</span>
        @Html.TextBoxFor(w => w.DatabaseName, new { @class = "form-control", placeholder = "Database name" })
    </div> 
    <br />
    @Html.CheckBoxFor(w => w.UseWindowsAuthentication, new { @checked = "checked" }) Use Windows Authentication<br /><br />
    <div class="wizard-sqlauth" style="display: none">
        <div class="input-group">
            <span class="input-group-addon">User name</span>
            @Html.TextBoxFor(w => w.UserName, new { @class = "form-control", placeholder = "User name" })
        </div>
        @Html.ValidationMessageFor(w => w.UserName)<br />
        <div class="input-group">
            <span class="input-group-addon">Password</span>
            @Html.PasswordFor(w => w.Password, new { @class = "form-control" })
        </div>
        @Html.ValidationMessageFor(w => w.Password)
    </div>
@Html.ValidationMessageFor(w=>w.DatabaseName)
数据库
@TextBoxFor(w=>w.DatabaseName,新的{@class=“form control”,placeholder=“Database name”})

@Html.CheckBoxFor(w=>w.UseWindowsAuthentication,new{@checked=“checked”})使用Windows身份验证

用户名 @TextBoxFor(w=>w.UserName,新的{@class=“form control”,placeholder=“User name”}) @Html.ValidationMessageFor(w=>w.UserName)
密码 @Html.PasswordFor(w=>w.Password,新的{@class=“form control”}) @Html.ValidationMessageFor(w=>w.Password)
数据库名为“必需”,输入为空。(只有占位符文本)

您已将属性的
RequiredAttribute
属性应用于属性的
DatabaseName
,这意味着属性必须包含值


如果属性为
null
,为空字符串(“”),或仅包含空格字符,则引发验证异常。

您只需在div顶部添加
@Html.ValidationMessageFor(w=>w.DatabaseName)
。这将显示摘要。

是否在javascript中的任何位置“手动”调用jquery验证,即

$(“#myform”).valid()

这将触发所需规则的默认值(“此字段是必需的”),并将其作为标签附加在输入之后,这正是您正在经历的行为

例如,如果您确实需要同时使用这两种方法(MVC的非结构化验证+jQuery验证),您可以进行配置

$('#myform').validate({
  ignore: '#databasefieldId'
});

您这样问是因为您看到的是“此字段是必需的”,而不是“请插入数据库名称”,对吗?所有的答案似乎都忽略了这一点是的,这正是我要问的。你能给我们展示一下你的其他观点吗?我已经编辑了这个问题并包含了整个部分观点。你真的在视图中使用InstallViewModel吗?也许您将InstallModel传递给了部分视图。问题不在于看似错误的错误消息吗?OP将ErrorMessage设置为“请插入数据库名称”,为什么不显示该消息?是的,问题是显示了两条消息。一个默认值和一个在ErrorMessage中定义的值。您能告诉我如何禁用默认值吗?@BranislavB。您可能只应该使用一种形式的验证,为什么需要手动使用jquery验证?因为my viewmodel以向导的形式显示在多个局部视图中。我需要验证向导的每个页面,以便用户可以单击“下一步”按钮。因此,我需要对每个视图中的每个元素调用验证:函数向导ValidateDataConnection(){var result=$(“#向导步骤数据库”).validate().element(“#数据库名称”)&&$(“#向导步骤数据库”).validate().element(“#用户名”)&&$(“#向导步骤数据库”).validate().element(“#密码”);返回结果;}@BranislavB。然后,我将尝试覆盖showErrors jquery验证选项,即
$('#myForm')。验证({showErrors:function(){})以便它不执行任何操作。这样,您只会得到MVC不引人注目的验证错误。我从来没有真正尝试过这个,让我知道它是否有效,我会用它更新答案。我添加了一个空白函数(){}作为错误,现在它没有显示任何内容