Плюсы и минусы для различного синтаксиса лямбда-выражений в представлении вызова помощника - PullRequest
1 голос
/ 19 августа 2009

Я пишу помощник по представлениям, основанный на идеях о частичных запросах из этого сообщения в блоге: 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> как буквально, я просто подумал, что лучше всего описать это с помощью имен Moq.

1 Ответ

1 голос
/ 19 августа 2009

Использование строк значительно быстрее, чем использование так называемых хелперов со строгой типизацией (на самом деле, это примерно в 10 раз быстрее), если только вы не внедрили какое-либо кэширование для анализа Expression. Обратите внимание, однако, что MVC 2 может иметь что-то подобное RSN. Таким образом, один из вариантов, если вы можете, это просто подождать и посмотреть, что будет в следующем окне предварительного просмотра. По крайней мере, вы захотите выглядеть как остальные MVC, и команда MVC может в конечном итоге сделать вашу работу за вас.

(«Так называемый», потому что под покровами они все равно окажутся строками в RouteValueDictionary.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...