2017-07-31 64 views
0

我有一個ASP.NET MVC 5 AngularJS(1.5.6)應用程序。ASP.NET MVC AngularJS頁面返回模型對象

我有一個MVC控制器Action方法,返回模型對象並將該數據綁定到$ scope變量。

下面是代碼:

模型類:

public class ApiurlAndUser 
{ 
    public string ApiUrl { get; set; } 
    public string UserName { get; set; } 
} 

控制器的操作方法:

public ApiurlAndUser GetApiurlAndUsername() 
    { 
     var data = new ApiurlAndUser(); 
     data.ApiUrl = ConfigurationManager.AppSettings["WebApiUrl"].ToString(); 
     var request = Request; 
     if (request != null) 
     { 
      var userIdentity = ((System.Web.HttpRequestWrapper)request).LogonUserIdentity; 
      if(userIdentity!=null) 
       data.UserName = userIdentity.Name; 
     } 
     return data; 
    } 

AngularJS代碼在app.js文件:

vm.getApidomainAndUsername = function() { 
      var url = vm.localUrl + 'home/GetApiurlAndUsername'; 
      $http({ 
       method: 'GET', 
       url: url, 
       headers: { 
        'Content-Type': 'application/json' 
       } 
      }).then(function (result) { 
       debugger; 
       if (result.data.length > 0) { 
        var output = result.data; 
        $scope.userName = result.data.UserName; //here it says undefined 
        $scope.apiDomain = result.data.ApiUrl; 
       } 
       else { 
        vm.g3pUserName = 'InvalidUser'; 
       } 
      }, function (error) { 
      }); 
     }; 
     vm.getApidomainAndUsername(); 

這裏result.data不爲空。它顯示模型全名。但是,如何在這裏訪問這些值?如何轉換? 欣賞您的回覆。

感謝 麗塔

回答

0

這很難說,不知道什麼是你result.data。我猜你可能需要

var output = JSON.parse(result.data); 
$scope.Username = output.UserName;