3

如何访问 Razor 引擎视图文件中的 C# 类属性?

C#类:

[Name="Test"]
public class OrderProgressPage
{
    bool isComplete();
}

剃刀视图:

@model ViewModels.OrderProgressPage
<ul>
    <li>@GETAttribute(Name,Model)</li>
<ul>
4

1 回答 1

3

一种干净的方法是在 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)
于 2012-10-11T17:41:12.373 回答