奇怪的Razor C#到VB语法

时间:2014-04-18 18:28:35

标签: c# asp.net-mvc razor

我正在尝试转换以下代码,以便它使用vbhtml而不是cshtml。

01  @{
02      Html.MobSyncfusion().Header("sfheader")
03          .Position(MobPosition.Fixed)
04          .RenderMode(RenderMode.IOS)
05          .Title(@ViewData["CurrentProduct"].ToString())
06          .IOS(ios =>
07          {
08              ios.RightButton(button =>
09              {
10                  button.ShowButton(true).Caption("Products");
11              });
12          }).Render();
13  }

到目前为止,我已经成功转换了大部分内容,但是IOS部分证明是困难的,到目前为止我还没有在互联网上找到任何资源,甚至显示了这里使用的C#语法。

此外,developerfusion工具没有任何帮助,它只是吐出一些我以前从未见过这种语法的无意义代码在C#中

到目前为止我的转换:

01    @Code
02        With Html.MobSyncfusion().Header("sfheader")
03            .Position(MobPosition.Fixed)
04            .RenderMode(RenderMode.IOS)
05            .Title(ViewData("CurrentProduct").ToString)
06            .IOS()
07                 
08            .Render()
09        End With
10  End Code

这是一个主布局视图页面,我也是MVC的新手,所以任何转换它的帮助都会很棒。

感谢。

1 个答案:

答案 0 :(得分:3)

这些是lambda表达式。它们在VB中看起来非常不同。这是C#中的一组单行和多行lambda表达式,然后是VB中的等价集:

C#:

var list = new List<string>();

list.Any(x => x.Length > 5);

list.Any(x => 
{
    return x.Length > 5;
});

list.ForEach(x => Debug.Print(x));

list.ForEach(x => 
{
    Debug.Print(x);
});

VB:

Dim list = New List(Of String)

list.Any(Function(x) x.Length > 5)

list.Any(Function(x)
             Return x.Length > 5
         End Function)

list.ForEach(Sub(x) Debug.Print(x))

list.ForEach(Sub(x)
                 Debug.Print(x)
             End Sub)

有关详细信息,请查看以下链接:

Lambda Expressions (Visual Basic)

How to: Create a Lambda Expression (Visual Basic)