我正在根据有关此博客帖子的部分请求的想法撰写视图助手:http://blog.codeville.net/2008/10/14/partial-requests-in-aspnet-mvc/
在控制器操作中,我通过运行以下来准备小部件:
AddWidget<Someontroller>(x => x.OtherActionName(new List<int>()));
然后在我看来,我可以通过执行以下某种形式来运行动作并渲染视图输出:
Html.RenderWidget...
这就是我的问题,您可以从以下选项中选择哪种编译器检查语法在视图中使用:
Html.RenderWidget<SomeController, List<int>>(x => x.OtherActionName);
Html.RenderWidget<SomeController>(x => x.OtherActionName(null));
Html.RenderWidget<SomeController>(x => x.OtherActionName(It.IsAny<List<int>>);
有人能说出一些利弊吗?或者最好使用原始部分请求实现的字符串?
PS。不要把它命名为It.IsAny&gt;我觉得最好使用Moq命名来描述。
答案 0 :(得分:1)
使用字符串比使用所谓的强类型助手快得多(真的;它快10倍),除非你为Expression解析实现某种缓存。但请注意,MVC 2可能具有RSN这些行。因此,如果可以的话,一个选择是等待,看看下一个预览中的内容是什么。至少,你会希望看起来像MVC的其余部分,MVC团队最终可能会为你工作。
(“所谓的”,因为无论如何,它们最终将成为RouteValueDictionary中的字符串。)