Передача html с использованием функции @helper движка бритвы с делегатом - PullRequest
2 голосов
/ 17 августа 2011

Я, вероятно, здесь отсутствует какой-то очень простой синтаксис. Тем не менее, возможно, что Razor еще недостаточно умен для вывода 'understand' html внутри делегата, подобного этому (из-за отсутствия официальной документации от кого-либо, связанного с разработками последнего, я должен опубликовать это здесь):

  @{

     ParallelQuery pQuery = rootData.ChildNodes.AsParallel();


     Func<ParallelQuery, string> builderAction = delegate
     {

         while (rootData.HasChildNodes)
         {
             foreach (SiteMapNode node in pQuery)
             {
                  <li><a href="@node.Url">@node.Title</a></li> //CANT SEE ANY HTML TAGS AVAIL TO SPEW                
             }
         }
         return string.Empty;
     };

   };

ДА ТОЛЬКО ВНЕ ДЕЛЕГАТНОГО ОРГАНА:

      //CHARM - BUT I WANT TO USE DELEGATES, WHY NOT??
      @{ 
        foreach(var x in new string[100]) {
        <li>
               <a href="@x">@x</a>
        </li>
      };

Что не так с этой картинкой ??

Редактировать 1:

Я здесь что-то странное делаю, просто чтобы построить список деревьев со ссылками? Это кажется немного более сложным, чем то, о чем бритва должна была быть в слезах легкости.

1 Ответ

2 голосов
/ 17 августа 2011

Выполнение страницы продолжает выполняться при выполнении любых параллельных запросов. К тому времени, как ваш параллельный запрос завершил работу, .net уже отправил вашу страницу клиенту.

Если вы выполняете параллельный запрос внутри функции, вызываемой Ajax, она тоже не будет работать.

Каким-то образом вам нужно подождать, пока параллельный запрос завершится, потому что он не блокирует. Таким образом, в конце вашего кода, выполняющего параллельный запрос, вам нужно будет как-то подождать, пока он не завершится.

...