Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 处理@HTML.Label的lambda_C#_Asp.net Mvc 3_Razor - Fatal编程技术网

C# 处理@HTML.Label的lambda

C# 处理@HTML.Label的lambda,c#,asp.net-mvc-3,razor,C#,Asp.net Mvc 3,Razor,我有一个视图,我的类叫做Cliente,定义如下 public partial class Cliente { public Cliente() { this.Campana = new HashSet<Campana>(); } public short IdCliente { get; set; } public short IdDireccion { get; set; } public string Descr

我有一个视图,我的类叫做Cliente,定义如下

public partial class Cliente
{
    public Cliente()
    {
        this.Campana = new HashSet<Campana>();
    }

    public short IdCliente { get; set; }
    public short IdDireccion { get; set; }
    public string Descripcion { get; set; }
    public bool Activo { get; set; }

    public virtual ICollection<Campana> Campana { get; set; }
    public virtual Direccion Direccion { get; set; }
}
现在我想知道的是,如何创建一个lambda表达式来创建基于类的标签和字段。我试过这样做,但不起作用

  @foreach (var item in ViewBag.Campanas)
  {
      @Html.LabelFor (modelItem => item.Descripcion)
  }
这是坎帕纳班

public partial class Campana
{
    public Campana()
    {
        this.Servicio = new HashSet<Servicio>();
    }

    public short IdCampana { get; set; }
    public short IdCliente { get; set; }
    public string Descripcion { get; set; }
    public bool Activo { get; set; }

    public virtual Cliente Cliente { get; set; }
    public virtual ICollection<Servicio> Servicio { get; set; }
}

出现该错误的原因是无法在动态引用上使用lambdas。i、 ViewBag现在,您已经说过一些关于强类型视图的内容,但是您的视图实际上并不是强类型的。为此,使用@model指令。您可以这样声明您的模型:

@model Table<Campana>

然后,您可以使用模型,而不是使用ViewBag.Campanas。或者,如果愿意的话,也可以传入整个数据上下文数据库。然而,这不是很好的做法。最好为视图创建单独的视图模型,并将linq to sql对象转换为视图模型。

出现此错误的原因是无法在动态引用上使用lambdas。i、 ViewBag现在,您已经说过一些关于强类型视图的内容,但是您的视图实际上并不是强类型的。为此,使用@model指令。您可以这样声明您的模型:

@model Table<Campana>
然后,您可以使用模型,而不是使用ViewBag.Campanas。或者,如果愿意的话,也可以传入整个数据上下文数据库。然而,这不是很好的做法。最好为视图创建单独的视图模型,并将linq到sql对象转换为视图模型

现在我想知道的是,我怎样才能对 基于类创建标签和字段

如果你使用这种蹩脚的ViewBag/ViewData,你完全可以忘记lambda和强类型。不可能。ViewBag是动态分辨率,不提供任何编译时类型安全性

我建议您使用视图模型,并让控制器操作将特定的视图模型类型传递给视图。简单地忘记ViewBag的存在。它将使您的代码具有强类型和编译时安全性

在www上有很多文章和教程教人们这个ViewBag的癌症。我真的受够了。请不要在任何应用程序中使用它

定义视图模型。 使控制器动作将这些视图模型传递给视图。 强烈键入视图@model MyViewModel 在视图中使用具有lambda表达式和编译时安全性的强类型帮助程序。 结论:只有当您从应用程序中完全删除ViewBag/ViewData的任何痕迹后,我们才能在视图中讨论lambdas和强类型

现在我想知道的是,我怎样才能对 基于类创建标签和字段

如果你使用这种蹩脚的ViewBag/ViewData,你完全可以忘记lambda和强类型。不可能。ViewBag是动态分辨率,不提供任何编译时类型安全性

我建议您使用视图模型,并让控制器操作将特定的视图模型类型传递给视图。简单地忘记ViewBag的存在。它将使您的代码具有强类型和编译时安全性

在www上有很多文章和教程教人们这个ViewBag的癌症。我真的受够了。请不要在任何应用程序中使用它

定义视图模型。 使控制器动作将这些视图模型传递给视图。 强烈键入视图@model MyViewModel 在视图中使用具有lambda表达式和编译时安全性的强类型帮助程序。
结论:只有在您完全从应用程序中删除任何ViewBag/ViewData痕迹后,我们才能在您的视图中讨论lambdas和强类型。

事实上,我做到了,只是我没有添加到问题中,然而,它与@model client相关的视图事实上,我做到了,只是我没有添加到问题中,然而,它与@model相关的视图Client@KirkWoll,当我看到ViewBag时,我怎么能不咆哮?这不仅让我大喊大叫,还让我呕吐。我经常在代码评审时看到这一点,我现在已经习惯了这种废话。不幸的是,无论我怎么努力,人们仍然继续使用。“这就是微软引入这个概念的过错。”柯克沃尔,当我看到ViewBag时,我怎么能不咆哮呢?这不仅让我大喊大叫,还让我呕吐。我经常在代码评审时看到这一点,我现在已经习惯了这种废话。不幸的是,无论我怎么努力,人们仍然继续使用。这就是微软引入这一概念的过错。