Каков правильный синтаксис MvcContrib 3 для этого? - PullRequest
0 голосов
/ 10 ноября 2011

Я унаследовал веб-сайт ASP.NET MVC 1 с использованием MVCContrib 1.5, который я пытаюсь обновить до MVC 3 и MVCContrib 3.

При использовании Html.Grid

* 1005 у веб-сайта было следующее*

В MvcContrib .For("Yes") больше не действует синтаксис для создания столбца со строкой в ​​качестве заголовка.

Чтобы заставить его работать, мне пришлось изменить его на .For(c=>"Yes"), и мне пришлось добавить.Named("Yes") чтобы вернуть текст заголовка.Насколько я знаю, c=>"Yes" на самом деле не делает ничего полезного.Что должно идти туда?Или я должен просто оставить его, если он не приносит никакого вреда?

Кроме того, .Action устарел и говорит, что вместо него следует использовать .Custom.Как бы я преобразовал вышеупомянутое?

column.Custom(p => {%>
  <td style="text-align:center">
    <%=this.Hidden("category[" + i + "].Id").Value(p.Id)%>
    <%=this.RadioButton("category[" + i + "].Interested").Value("true") %>
  </td>
<% }).Named("Yes");

Это ожидает возвращаемого значения, я не уверен, что поместить и не могу найти много примеров.

Ответы [ 2 ]

1 голос
/ 18 февраля 2012
column.Custom(
    @<text>
         <td style="text-align:center">
             @this.Hidden("category[" + i + "].Id").Value(item.Id)
             @this.RadioButton("category[" + i + "].Interested").Value("true")
         </td>
     </text>
).Named("Yes");
1 голос
/ 18 февраля 2012

Метод For() используется, когда вы просто хотите показать значение свойства, чтобы вы могли использовать его следующим образом:

column.For(p => p.Id).Named("Yes");

Обратите внимание, что вам не нужно использовать Named()если вы присвоили свойству Id свойство [Display(Name="Yes")], присвоенное модели, так как оно будет использоваться по умолчанию.

Вы можете использовать Custom(), когда хотите отобразить созданный вами HTML, поэтомуВы можете просто вернуть MvcHtmlString.С синтаксисом бритвы это может выглядеть примерно так:

column.Custom(p => @Html.Partial("IdPartial",p.Id));
...