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

これを行うためのクリーンな方法の1つは、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 に答える