我在Razor视图中有这个C#代码:
@(Html.CheckBoxFor<RazorSamplesWeb.Models.SamplesModel>(i => i.IsActive))
我尝试将其翻译成:
@Code Html.CheckBoxFor(Of RazorSamplesWeb.Models.SamplesModel)(Function(i) i.IsActive)End Code
但它在抱怨。为什么,什么是正确的陈述?
感谢。
答案 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。