c# - ASP.NET 网页 (Razor) 中的验证已弃用?

标签 c# asp.net asp.net-mvc validation razor

我正在尝试在 Razor 中使用验证,但是当我尝试使用该行时

Validation.RequireFields("firstName", "lastName", "dateOfBirth");

visual studio 告诉我:

'System.Web.Helpers.Validation' is obsolete: '"Use System.Web.HttpRequest.Unvalidated instead."'

'System.Web.Helpers.Validation' does not contain a definition for 'RequireFields'

但我能找到的最新引用资料是 http://www.asp.net/web-pages/overview/more-resources/asp-net-web-pages-api-reference#Validation而且我真的不明白 Unvalidated 应该如何做我想做的事。

我如何进行验证?

谢谢!

如果相关,这是我的 web.config:

<?xml version="1.0"?>

<configuration>
  <configSections>
    <sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
      <section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
      <section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
    </sectionGroup>
  </configSections>

  <system.web.webPages.razor>
    <host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.1.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    <pages pageBaseType="System.Web.Mvc.WebViewPage">
      <namespaces>
        <add namespace="System.Web.Mvc" />
        <add namespace="System.Web.Mvc.Ajax" />
        <add namespace="System.Web.Mvc.Html" />
        <add namespace="System.Web.Optimization"/>
        <add namespace="System.Web.Routing" />
        <add namespace="WebRole2" />
      </namespaces>
    </pages>
  </system.web.webPages.razor>

  <appSettings>
    <add key="webpages:Enabled" value="false" />
  </appSettings>

  <system.webServer>
    <handlers>
      <remove name="BlockViewHandler"/>
      <add name="BlockViewHandler" path="*" verb="*" preCondition="integratedMode" type="System.Web.HttpNotFoundHandler" />
    </handlers>
  </system.webServer>
</configuration>

最佳答案

使用属性对模型进行验证:

public class MyModel
{
  [Required][StringLength(100)]
  public string FirstName {get;set;}
}

查看此 excellent blog post这很好地解释了它。此外,如果框架属性不满足您的要求,this library有很多额外的属性。

关于c# - ASP.NET 网页 (Razor) 中的验证已弃用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24813224/

相关文章:

C#,如何在 foreach 循环期间将字符串拆分为新行?

c# - 如何在 .NET 程序集中找到相应的 .pdb?

asp.net - NavigationMenu.ImageUrl 边框样式?

c# - WCF如何检测客户端和服务器是否在同一台服务器上

c# - 部分 View 忽略数据集且不显示

asp.net-mvc - 广告拦截器会拦截 Ajax 调用响应 html

c# - 在 Controller 中编辑后 ModelState 不验证嵌套模型

c# - Model.List 在使用 Razor 的 POST 上为空

c# - 具有内置审计跟踪的 ORM

c# - 是否值得从我的文件中删除 "using System"?