angularjs:如何从隐藏输入类型的asp .net页面获取值?

有人知道如何做这个简单的事情:从angularjs的隐藏输入字段中获取值? 在没有真正成功的情况下搜索了很多…服务器端的C#写了一个产品ID,我需要检索它以将它传递给我的angularjs json服务。

如果你能够回答,那么就要百万倍!

我是这样做的:

@functions{ public string GetAntiForgeryToken() { string cookieToken, formToken; AntiForgery.GetTokens(null, out cookieToken, out formToken); return cookieToken + ":" + formToken; } }  var antiForgeryToken = $("#antiForgeryToken").val(); 

编辑

没有jQuery:

 var antiForgeryToken = document.getElementById("antiForgeryToken").value; 

使用angular $文档:

 var antiForgeryToken = $document.find("#antiForgeryToken").val(); 

@Rod Hartzell解决方案的一个小改进

 var hiddenField = new HtmlInputHidden {Value = "myValue", ID = "hiddenfield" ClientIDMode = ClientIDMode.Static}; hiddenField.Attributes.Add("ng-model","myhiddenfield"); myDiv.Controls.Add(hiddenField); 

 $scope.myTest = $('#hiddenfield').val(); 

我已将ClientIdMode设置为Static( https://msdn.microsoft.com/en-us/library/system.web.ui.control.clientidmode%28v=vs.110%29.aspx )。 这样ClientID值就设置为ID属性的值。

希望有所帮助。

您可以尝试在服务器端的字段上生成ng-model="hiddenValue"属性,然后尝试使用$scope.hiddenValue获取控制器中的值。 当然,隐藏字段应该在控制器的范围内。

@Rob Jacobs有正确的方法。 基本上这个:

 $scope.myHiddenElement = $("#ctl00_cphMainContent_hConsentDisagree").val(); 

隐藏元素的位置是:

  

要么…

  

编辑为了避免破坏AngularJs的精神,您可以将ASP.NET片段更改为以下内容:

 var hiddenField = new HtmlInputHidden(); hiddenField.Value = "myValue"; hiddenField.Attributes["ng-model"] = "my-hidden-field"; 

那就是控制器中的这个:

 $scope.my-hidden-field 

编辑2号

 var hiddenField = new HtmlInputHidden {Value = "myValue", ID = "hiddenfield"}; hiddenField.Attributes.Add("ng-model","myhiddenfield"); myDiv.Controls.Add(hiddenField); 

似乎不起作用……但是这样做:

 $scope.myTest = $('#MainContent_hiddenfield').val(); 

是的……我知道,它打破了Angular的精神,但……有时候你必须让它发挥作用。 我没有更好的答案。