Html.CheckBoxFor в VB Razor View - PullRequest
       5

Html.CheckBoxFor в VB Razor View

1 голос
/ 27 февраля 2011

У меня есть этот код C # в представлении Razor:

@(Html.CheckBoxFor<RazorSamplesWeb.Models.SamplesModel>(i => i.IsActive))

Я пытался перевести его на это:

@Code Html.CheckBoxFor(Of RazorSamplesWeb.Models.SamplesModel)(Function(i) i.IsActive)End Code

Но это жалуется.Почему и какое правильное утверждение?

Спасибо.

Ответы [ 3 ]

4 голосов
/ 28 февраля 2011
@(Html.CheckBoxFor<RazorSamplesWeb.Models.SamplesModel>(i => i.IsActive))

слишком длинный, уродливый и эквивалентен:

@Html.CheckBoxFor(i => i.IsActive)

, который в VB.NET может выглядеть следующим образом:

@Html.CheckBoxFor(Function(i) i.IsActive)

@Code, на который вы ссылаетесьМожно использовать для помощников, которые не возвращают никакого значения (IHtmlString), но записывают непосредственно в выходной буфер.Пример:

@Code Html.RenderAction("Foo") End Code
0 голосов
/ 29 мая 2011

Если вы не определили @ModelType, правильный оператор будет

 @Html.CheckBoxFor(Function(m As RazorSamplesWeb.Models.SamplesModel) m.IsActive))

Вы явно задаете универсальный тип RazorSamplesWeb.Models.SamplesModel.

0 голосов
/ 27 февраля 2011

@Code блоки используются для автономных операторов;они эквивалентны @{ ... } в C #.

Вы должны использовать необработанный блок @.

В вашем коде C # используются скобки, чтобы заставить синтаксический анализатор читать после HTML-подобного <...> часть.
VB.Net не имеет неоднозначного обобщенного синтаксиса, поэтому он вам не нужен.

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