Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/306.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# 选择最小值和最大值的验证_C#_Asp.net Core - Fatal编程技术网

C# 选择最小值和最大值的验证

C# 选择最小值和最大值的验证,c#,asp.net-core,C#,Asp.net Core,我有一个表单,其中最小值和最大值必须由用户输入。本案例的验证建议是什么。仅服务器验证或客户端和服务器验证 如何在客户端验证这两个输入?你知道这样的例子吗 更新 我所说的验证是比较验证(我知道如何进行其他验证,互联网上有很多示例)。但是,我没有找到与compare连接的两个字段的客户端验证 基本上,您是如何对最小值进行客户端验证的,它的值小于最大值,以及对最大值进行客户端验证的,它的值小于最小值。或者,推荐的替代方案是什么 新更新 我问题的第一句话似乎已经不见了。在一个表单上,我有两个输入字段,比

我有一个表单,其中最小值和最大值必须由用户输入。本案例的验证建议是什么。仅服务器验证或客户端和服务器验证

如何在客户端验证这两个输入?你知道这样的例子吗

更新

我所说的验证是比较验证(我知道如何进行其他验证,互联网上有很多示例)。但是,我没有找到与compare连接的两个字段的客户端验证

基本上,您是如何对最小值进行客户端验证的,它的值小于最大值,以及对最大值进行客户端验证的,它的值小于最小值。或者,推荐的替代方案是什么

新更新

我问题的第一句话似乎已经不见了。在一个表单上,我有两个输入字段,比如FieldA和FieldB。FieldA必须小于FieldB,FieldB必须大于FieldA

我的问题是:有没有关于如何进行这种验证的示例。由于常见的响应是在客户机上进行验证,因此我的问题是应该向这两个字段添加什么样的验证?当不满足条件时,我是否使这两个字段都无效。如果是,那么在用户更改其中一个字段后,如何使这两个字段再次有效。

原因是:

  • 仅客户端验证:您的服务器将被黑客攻击
  • 仅服务器端:您的用户会感到恼火,尽管它比仅客户端好
  • 两者都是:快乐的用户,而不是黑客。不过还要多做一点工作

至于技术,根据您的设置,会有负载。您可以在服务器端使用带有验证属性的
DataAnnotations
,有大量的
jquery
angular
knockout
等客户端javascript验证插件


补充: 正如@bradbury9所述:

可以找到JQuery验证的一个示例:

以及控制器:

// POST: Movies/Create
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<IActionResult> Create(Foo foo)
{
    if (!ModelState.IsValid)
    {
      //error
    }
}

有关详细信息,请参阅。

您在前端和后端使用的技术是什么?BE:asp.net core c#。FE:jquery验证可能的重复是重复,但我需要完整的解决方案。我已经发布了另一个更明确的问题,应该指出服务器端验证@bradbury9:我同意。我把它添加到了答案中。我不需要必要的验证。我在问关于比较验证的问题。如果最小值小于最大值且最大值大于min@Dan:啊,是的,我添加了一个范围验证示例。啊,那更复杂。我曾经编写了一个自定义服务器端属性来实现这一点。以下是一个示例,它与日期有关,但可以轻松调整:
//model
public class Foo
{
    [Range(1, 100)]
    [DataType(DataType.Currency)]
    public decimal Price { get; set; }
} 
// POST: Movies/Create
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<IActionResult> Create(Foo foo)
{
    if (!ModelState.IsValid)
    {
      //error
    }
}
$( "#commentForm").validate({
  rules: {
    field: {
      required: true,
      range: [13, 23]
    }
  }
});