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

时间:2013-12-16 21:01:32

标签: c# angularjs

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

如果你能回答的话,那就是100万次!

4 个答案:

答案 0 :(得分:3)

我就是这样做的:

@functions{
        public string GetAntiForgeryToken()
        {
            string cookieToken, formToken;
            AntiForgery.GetTokens(null, out cookieToken, out formToken);
            return cookieToken + ":" + formToken;
        }
    }

<input id="antiForgeryToken" type="hidden" value="@GetAntiForgeryToken()" />

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

修改

没有jQuery:

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

使用angular $ document:

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

答案 1 :(得分:1)

@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属性的值。

希望有所帮助。

答案 2 :(得分:0)

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

答案 3 :(得分:0)

@Rob Jacobs有正确的方法。基本上就是这样:

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

你的隐藏元素是:

<asp:HiddenField ID="hConsentDisagree" runat="server">

或者...

<input type='hidden' id='ctl00_cphMainContent_hConsentDisagree' value='whatever' />

EDIT 为了避免破坏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的精神,但......有时候你必须让它发挥作用。我没有更好的答案。