我在ASP.NET WebForms页面中调用了一个控制器:
输入类型="按钮" data-ng-click =" addReply(post.PostId,LoggedInDisplayName,post.NewReply)"值="提交" ID =" createReply" class =" btn btn-default pull-right"
LoggedInDisplayName是我需要传递给addReply方法的变量,该方法在服务中执行RESTful API HTTP调用。
不幸的是,LoggedInDisplayName是一个只能由ASP提供的字段,因为这是当前用户的登录名,我使用的是Microsoft的内置成员资格配置例程。
我可以在我的代码隐藏C#文件中使用此逻辑将登录名放入隐藏的span或textarea元素中:
if (Membership.GetUser() != null)
{
loggedInDisplayName.InnerText = Membership.GetUser().ToString();
}
其中loggedInDisplayName是span或textarea的ID。
但是,如何将span或textarea的内容放入LoggedInDisplayName字段?我尝试使用ng-model,但这不起作用 - span / textarea恢复为空白字段。
非常感谢任何帮助。
答案 0 :(得分:0)
只需输入你的提交按钮,ng-init =“loggedInDisplayName =(asp variable)”。这会将变量初始化为您的asp变量。
答案 1 :(得分:0)
为了解决这个问题,我将asp变量加载到DOM中,如下所示
span style =" visibility:hidden" ID =" loggedInDisplayName" ><%:LoggedInDisplayName()%>
在文件后面的.cs代码中:
public string LoggedInDisplayName()
{
string loggedInDisplayName = "";
// set the login name for use in creating new posts and replies
if (Membership.GetUser() != null)
{
loggedInDisplayName = Membership.GetUser().ToString();
}
return loggedInDisplayName;
}
然后一个控制器在范围
中创建变量// The Global Variable defined outside angular
var loggedInDisplayName = $('#loggedInDisplayName').text();
//Define Controller
gwApp.controller('LoginName', ['$scope', '$window',
function ($scope, $window) {
$scope.LoggedInDisplayName = $window.loggedInDisplayName;
}
]);
我将现有的控制器包装在新控制器中:
div id =" loginName"数据-NG控制器=" LoginName将">
...现有代码......
/ DIV>
然后我的提交按钮:
输入类型="按钮" data-ng-click =" addReply(post.PostId,LoggedInDisplayName,post.NewReply)"值="提交" id =" createReply {{post.PostId}}" class =" btn btn-default pull-right" />