Razorエンジンビューファイル内のC#クラス属性にアクセスするにはどうすればよいですか?
C#クラス:
[Name="Test"]
public class OrderProgressPage
{
bool isComplete();
}
かみそりのビュー:
@model ViewModels.OrderProgressPage
<ul>
<li>@GETAttribute(Name,Model)</li>
<ul>
Razorエンジンビューファイル内のC#クラス属性にアクセスするにはどうすればよいですか?
C#クラス:
[Name="Test"]
public class OrderProgressPage
{
bool isComplete();
}
かみそりのビュー:
@model ViewModels.OrderProgressPage
<ul>
<li>@GETAttribute(Name,Model)</li>
<ul>
これを行うためのクリーンな方法の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)