VB Razor View中的Html.CheckBoxFor

时间:2011-02-27 20:37:44

标签: asp.net asp.net-mvc vb.net razor asp.net-mvc-3

我在Razor视图中有这个C#代码:

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

我尝试将其翻译成:

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

但它在抱怨。为什么,什么是正确的陈述?

感谢。

3 个答案:

答案 0 :(得分:4)

@(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

答案 1 :(得分:0)

@Code块用于独立语句;它们相当于C#中的@{ ... }

您应该使用原始@块。

您的C#代码使用括号强制解析器读取类似HTML的<...>部分。
VB.Net没有含糊不清的泛型语法,所以你不需要它。

答案 2 :(得分:0)

如果您没有定义@ModelType,则右侧语句为

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

您明确将泛型类型设置为RazorSamplesWeb.Models.SamplesModel。