[英]check if user requests his own page in asp.net mvc/angularjs
我在我的項目中使用帶有angularjs的asp.net mvc。 如何與user
對象一起返回一些額外的數據(類似於isOwner變量)?
var isOwner = false;
if(user.Alias == User.Identity.Name)
isOwner = true;)
在視圖上,僅當用戶請求自己的頁面時,我才想顯示編輯按鈕
這是api控制器:
public User GetUser(String id)
{
xRM.DAO.Model.User user = null;
using (var db = new xRMContext())
{
user = db.Users
.Include("Team").Include("Unit").Include("Location")
.FirstOrDefault(u => u.Alias.ToLower() == id.ToLower());
}
if (user == null)
{
throw new HttpResponseException(HttpStatusCode.NotFound);
}
return user;
}
和angularjs控制器:
.controller('UserCtrl', ['$scope', '$location', '$routeParams', 'User', function ($scope, $location, $routeParams, User) {
$scope.user = User.get({ id: $routeParams.id })
}])
您只需要返回一個視圖模型而不是User
模型。 viewmodel應該包含視圖所需的任何屬性,而不僅僅是公開User
對象的所有屬性。 例如:
public class UserViewModel
{
public string UserName {get; set;}
public string Email {get; set;}
// more properties from User
public bool IsOwner {get; set;}
}
顯然,您顯然需要更改GetUser
操作方法,以便它返回UserViewModel
,添加確定用戶是否為所有者的邏輯,並將屬性從User
對象映射到viewmodel。 如果您發現自己經常映射屬性(可能會變得乏味),則強烈建議使用Automapper 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.