使用AngularJS验证ASP.NET Webforms

时间:2015-12-11 14:23:45

标签: asp.net angularjs validation webforms

要使用AngularJS验证状态,我需要通过名称引用表单。但是我的表单没有名称,我不知道如何设置名称,除了使用Javascript,我不想这样做。当我将name属性添加到<form runat="server">时,它不会出现在输出HTML中。

工作理想的示例:

<form name="form">
    <div ng-app="myApp" ng-controller="myCtl">
        First Name: <input type="text" name="firstName" ng-model="firstName" required><br>
        <span ng-show="form.firstName.$dirty">Dirty</span>
    </div>
</form>

解决方案可能是以下两种方法之一:

  • 按ID而不是名称
  • 引用表单元素
  • 获取ASP.NET webforms以输出name属性

3 个答案:

答案 0 :(得分:1)

ASP.NET controls have been modified in the .NET Framework version 4.

HtmlForm控件不再呈现名称属性。

要禁用新的呈现模式,请在Web.config文件中添加以下设置:

  <system.web>
    <pages controlRenderingCompatibilityVersion="3.5" />
  </system.web>

答案 1 :(得分:0)

您可以使用以下代码从Web代码控件添加属性:

controlName.Attributes.Add("name","value");

<asp:TextBox ID="controlName" runat="server"/>

或者如果您想在.NET 4中使用Ids,您可以设置属性ClientIDMode,例如

 <asp:TextBox ID="controlName" runat="server" ClientIDMode="Static"/>

然后你可以用ID

来引用它

HTH

答案 2 :(得分:0)

使用jQuery修改表单标签

$('#form')。attr('name','form');