我希望能够实现与ASP.NET MVC中的HtmlHelpers类似的功能。以下是示例:
@Html.EditorFor(model => model.SomeProperty.SomeInnerProperty)
HtmlHelper不仅可以获取SomeInnerProperty的值,还知道我所说的该属性的“路径”,因为它会创建带有属性的适当HTML元素:
name="SomeProperty.SomeInnerProperty"
我希望能够创建一个类似HtmlHelpers的方法,既可以获取值,又可以获取“路径”。我已经研究了现有的HtmlHelpers,但是这看起来很棘手。不过我已经成功创建了一种使用方法:
MyCustomMethod(model => model.SomeProperty.SomeInnerProperty);
private void MyCustomMethod(Expression<Func<object, object>> expression)
{
// I can inspect the expression object in the debugger here
}
检查"expression"对象时,我可以通过反射来理解事情的内部情况,但我不确定我的解决方案有多健壮,因为我只是通过观察来理解事情。此外,这似乎比应该更困难;就像我错过了一些简单的东西。
有什么想法吗?