如何使用asp.net webform处理AngularJs?

时间:2014-09-22 16:31:26

标签: c# javascript jquery asp.net angularjs

我只是在一个用asp.net webforms编写的网站上实现AngularJ。

我知道按钮上的ng-Submit时,表单也在进行Post调用。

如何从form停止submitting并让angular do its work

我的示例代码如下。

<form id="form1" runat="server">
   <div >
     <input type="text" data-ng-model="enteredName" ng-model-instant/>
     <button class="btn" value="add" data-ng-submit="addName()" >Add</button>
   </div>
</form>


//Add Name function
$scope.addName = function () {
   $scope.names.push($scope.enteredName);
   $scope.enteredName = '';
};

注意The ng-submit controller is working fine it is adding the input to the string list but after that form makes post call. and page go to IsPostBack

任何人都会指导我处理表格而不发布。

2 个答案:

答案 0 :(得分:1)

如果您打算使用.NET制作角形图,则应该使用.NET MVC而不是.NET webforms。原因是所有webforms页面都有自己的<form>元素,用于维护状态。当您在Visual Studio中创建一个新的webforms页面时,可以看到这一点,它会自动添加:

<form runat="server" ID="Form1">

此外,当您制作像<asp:LinkButton>这样的网页表单控件或其他从基本HTML提供“增强”功能的内容时,它们实际上会呈现为使用父表单的<input>标记。因此,为了利用webforms的任何功能,你真的需要坚持他们的模型,并且很难在其上添加任何其他东西。这是可能的,有时候也很容易,但这是一个很长的学习曲线,可以找出沿途的所有问题。

相反,.NET MVC为您提供了更少的开箱即用,只需很少的包装器和回发或视图状态就可以将原始HTML暴露给您。我认为对于使用angular的东西来说,这是一个更好的主机,特别是如果你使用angular for forms,这将阻止你使用.NET的webforms功能。

答案 1 :(得分:0)

我首先使用ng-click而不是ng-submit。而且我也会在使用angular的页面上清除asp.net控件。