如何访问Razor引擎视图文件中的C#类属性?
C#类:
[Name="Test"]
public class OrderProgressPage
{
bool isComplete();
}
剃刀视图:
@model ViewModels.OrderProgressPage
<ul>
<li>@GETAttribute(Name,Model)</li>
<ul>
解决方法:
一种干净的方法是使用Razor文件中的本地函数
@functions
{
private Test GetTestAttribute(object obj)
{
// TODO: This returns null if TestAttribute was not on the class
TestAttribute myAttribute =
Attribute.GetCustomAttribute(obj, typeof (TestAttribute)) as TestAttribute;
}
}
<li>@GetTestAttribute(myClassInstance)</li>
参考:http://msdn.microsoft.com/en-us/library/71s1zwct.aspx
如果您需要传递属性名称以进行检查,则可以使用
Type.GetType(string typeName)
根据您的操作,您还可以将GetTestAttribute更改为带有签名的通用函数,例如
private T GetAttribute<T>(object obj)