这是我第一次使用自定义属性,可能是我做错了。我正在做的也可能不是正确的方法,所以如果我错了请纠正我。
我正在尝试开发基于网络/文本的游戏。我想拒绝尚未创建角色的帐户,但我不想在每种方法中都这样做。所以我决定创建一个属性来执行它并在属性返回false时停止执行方法。
这是我的属性
public class EnsureCharacter:Attribute
{
public bool EnsureCharacterAttr()
{
var member = Membership.GetUser();
var entity = new dixraEntities();
var character = entity.Character
.Where(c => c.AccountId == (int)member.ProviderUserKey)
.FirstOrDefault();
if (character != null)
return true;
else
return false;
}
}
在我的控制器中
[EnsureCharacter]
public ActionResult CreateCharacter()
{
return View();
}
问题是,我在属性中加了一个断点,我永远不会去那里。我在这里错过了什么?或者有没有更好的方法在每个控件中执行此控制?