我编写了一个从System.Web.Mvc.AuthorizeAttribute派生的自定义授权属性.我正在从我的控制器成功使用它来限制对某些功能的访问.
public class ArticleController : Controller
{
[CustomAuthorize(Role.Administrator)]
public ActionResult Delete(int id)
{
// ...
}
}
Run Code Online (Sandbox Code Playgroud)
这很好.现在我想根据相同的授权逻辑显示或隐藏HTML元素.例如,在我的视图"文章"中,如果用户不是管理员,我想隐藏操作按钮"删除".我写过类似的东西:
<ul id="menu">
<li>@if (User.IsInRole(Role.Administrator)) {
@Html.ActionLink("Delete", "Delete", "Article", new { id = article.ID }, null)
} </li>
</ul>
Run Code Online (Sandbox Code Playgroud)
它工作正常,但它创建了代码逻辑重复,因为我需要指定两次必要的信用来执行操作:
避免这种重复的最佳方法是什么?有没有办法从视图中重用我的自定义授权属性?
众所周知,正则表达式的功能非常强大。但众所周知,语法有点尴尬。
例如,每次使用它们时,我都会问自己哪个 和^
是$
string的开头(分别是string 的结尾)元字符。
我安装了Gallio/MbUnit,并且正在使用VS 2010 RC,我希望能够在TestFixture内运行单个单元测试或仅运行所有单元测试,而不是每次调试时都运行整个项目中的所有测试.你如何在VS 2010中做到这一点?
我试过谷歌搜索但没有找到任何东西.基本上,我想按照我定义的顺序运行每一行.例如,如果我有这个:
[Row("a")]
[Row("b")]
[Row("c")]
[Test]
public void Test(string s)...
Run Code Online (Sandbox Code Playgroud)
我想确保在测试B之前执行测试A,并且在测试C之前执行测试B.
假设我们有两个类Car和Driver,
我们可以制作像这样的对象
Car c=new Driver();
Run Code Online (Sandbox Code Playgroud)
并且能够调用汽车类的成员而不是驱动程序类的成员为什么和什么时候??
c# ×3
mbunit ×2
unit-testing ×2
asp.net-mvc ×1
class ×1
gallio ×1
mnemonics ×1
object ×1
regex ×1