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

如何访问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)
上一篇:c#-图像浏览器在Razor视图上的CkEditor中不起作用


下一篇:c#-从@ html.DropDownList返回int值