Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.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
Jquery @验证方法,它是如何工作的?_Jquery_Validation_Asp.net Mvc 4 - Fatal编程技术网

Jquery @验证方法,它是如何工作的?

Jquery @验证方法,它是如何工作的?,jquery,validation,asp.net-mvc-4,Jquery,Validation,Asp.net Mvc 4,我为表单验证编写了这段代码,它工作得非常好 资料持有人 视图侧 每件事都能完美地工作,并且验证正确,但是我尝试使用@Html.validate方法,因为我读到它除了注册字段进行验证之外没有其他作用,但这意味着什么?这是否意味着它将在客户端注册要验证的属性,如果是,如何进行验证?@Html.Validate注册要验证的属性,而无需在验证失败时显示消息。仅当您希望触发验证,但不希望显示该控件的特定错误时,才使用此HTML帮助程序。在您的情况下,因为您已经在使用ValidationMessage,所以

我为表单验证编写了这段代码,它工作得非常好

资料持有人

视图侧


每件事都能完美地工作,并且验证正确,但是我尝试使用@Html.validate方法,因为我读到它除了注册字段进行验证之外没有其他作用,但这意味着什么?这是否意味着它将在客户端注册要验证的属性,如果是,如何进行验证?

@Html.Validate注册要验证的属性,而无需在验证失败时显示消息。仅当您希望触发验证,但不希望显示该控件的特定错误时,才使用此HTML帮助程序。在您的情况下,因为您已经在使用ValidationMessage,所以不需要使用Validate;因为该属性已在ValidationMessage helper上注册以进行验证


另外,如果启用了不引人注目的JavaScript,@Html.Validate将返回,而不实际执行任何操作。因为如果您使用的是不引人注目的Javascript,那么其他机制将负责注册用于客户端和服务器验证的属性。

如果您使用的是
@Html.Validate()
(或
ValidateFor()
),则没有理由使用
@Html.ValidationMessage()
(或
ValidationMessageFor()
)@StephenMuecke是的,我知道,但我想了解它是如何工作的?我认为它强制验证没有@Html.ValidationMessage()的给定字段,并且您可以自己显示消息。。。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.ComponentModel.DataAnnotations;
namespace workflow.DataHolders
{
    public class NewCompany
    {
        [Required]
        [StringLength(200, MinimumLength = 3, ErrorMessage="Length Of The Company Name Should  Be More Than Three Letters")]
        public string CompanyName { get; set; }

        [Required]
        [EmailAddress(ErrorMessage="Invalid Email Address")]
        public string Email { get; set; }

        [Required]
        [StringLength(200, MinimumLength = 2, ErrorMessage = "Length Of The Country Name Should  Be More Than Two Letters")]
        public string Country { get; set; }

        public string Description { get; set; }
    }
}
<link href="@Url.Content("~/sharedfiles/css/forms/addnew.css")" rel="stylesheet" type="text/css" />
<div id="Add_container">

   @if (!ViewData.ModelState.IsValid)
   {
       <div id="validationMessage">Please Correct The Errors Below</div> 
   }

    @using (Html.BeginForm("ValidateAndSignUp", "Accounts", FormMethod.Post))
    {
        @Html.AntiForgeryToken()

        @Html.ValidationMessage("CompanyName");
        <span class="field_title">Company Name: </span>
        @Html.TextBox("CompanyName")

        @Html.ValidationMessage("Email");
        <span class="field_title">Email: </span>
        @Html.TextBox("Email")



        @Html.ValidationMessage("Country");
        <span class="field_title">Country Name: </span>
        @Html.TextBox("Country")

        <span class="field_title">About The Company: </span>
        @Html.TextArea("Description")



        <input type="submit" value="Create New Account">


    }
</div>
<div class="get_connected_message">
    <h1>Get Connected with your Customers</h1>
</div>

<div class="get_connected_message">
    <h1>Build your profissional buisness world</h1>
</div>

<div class="clear"></div>
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult ValidateAndSignUp(NewCompany newCompany)
{
    if (ModelState.IsValid)
    {

        return RedirectToAction("index", "Home");
    }
    else
    {
        return View("signUp", newCompany);
    }
}