jquery:如何从 ASP.NET MVC 项目中的视图模型中循环访问列表的元素?

jquery: How can I iterate through the elements of a list from a viewmodel in an ASP.NET MVC project?

提问人:Zehbart 提问时间:4/11/2023 最后编辑:marc_sZehbart 更新时间:4/11/2023 访问量:58

问:

我想使用 jQuery 在 ASP.NET MVC 项目中循环浏览我的视图模型中的条目列表。

我试过了这个:

$.each(@Model.Basisdatenliste, function (index, element) {
    console.log("Element #" + index + ": " + element);
});

但是它不起作用 - 我收到错误

未捕获的 SyntaxError:意外的输入结束

检查页面源,它看起来像这样:

$.each(System.Collections.Generic.List`1[Project.Areas.Mengenplaner.Models.Basisdaten], function (index, element) {
        console.log("Element #" + index + ": " + element);
 });

从“'”开始,代码被设置为注释。我做错了什么?

我的视图模型类如下所示(对不起,所有的德语名称):

public class HomeIndexViewModel
{
    public List<Basisdaten> Basisdatenliste { get; set; }
    public List<Verkaufsstellen> Verkaufsstellenliste { get; set; }
    public string AuswahlVerkaufsstelle { get; set; }
    public int AuswahlNummer { get; set; }
    public int AuswahlVerkaufsstellennummer { get; set; }
    public float AuswahlMengeInEinheit { get; set; }
    public float AuswahlMengeInKisten { get; set; }
    public float AuswahlVorschlagKisten { get; set; }
    public int AuswahlPLU { get; set; }
    public DateTime Nextdate { get; set; }
    public DateTime AuswahlDatum { get; set; }
}

Basisdatenliste是一个模型类,如下所示:

public class Basisdaten
{
    [DisplayName("PLU")]
    public int nummer { get; set; }
    public string Artikel { get; set; }
    public int Verkaufsstellennummer { get; set; }
    public string Markt { get; set; }

    public int PLU { get; set; }

    [DisplayName("Letzter Verkaufstag")]
    public DateTime LetztesDatum { get; set; }
    public string Description { get; set; }
    public string Einheit { get; set; }
    public double Verkaufsmenge { get; set; }
    public double PacklisteEinheit { get; set; }
    [DisplayName("Letzte Packliste")]
    public double PacklisteKisten { get; set; }
    public int AnzahlVerkaeufe { get; set; }
    public TimeSpan ErsterVerkaufProdukt { get; set; }
    public TimeSpan LetzterVerkaufProdukt { get; set; }
    public TimeSpan ErsterVerkaufAmVerkaufstag { get; set; }
    public TimeSpan LetzterVerkaufAmVerkaufstag { get; set; }
    public double VerkaufszeitGesamt { get; set; }
    public double AnzahlVerkaeufeProStunde { get; set; }
    public double MengeProVerkauf { get; set; }
    public double ZeitZwischenZweiVerkäufen { get; set; }
    public TimeSpan Zeitpunkt_ab_dem_Ware_ausverkauft_sein_darf { get; set; }
    public TimeSpan Zeitpunkt_ab_dem_Ware_ausverkauft_sein_darfAbzglZeitZwischenZweiVerkaeufen { get; set; }
    
    [DisplayName("Zu wenig Ware?")]
    public bool ZuWenig { get; set; }
   
    public double MengeZuWenig { get; set; }
    public double GebuchterVerlust { get; set; }
    public double VKPreis { get; set; }
    public double AktuelleUmpackmenge { get; set; }
    public double VorigeUmpackmenge { get; set; }
    public int AnzahlBons { get; set; }
    public int DurchschittszahlBonsVierWochen { get; set; }
    public float Planmenge { get; set; }
} 
jQuery ASP.NET-MVC 循环视图 模型

评论

0赞 isherwood 4/11/2023
在这种情况下,什么是视图模型?jQuery作用于DOM元素或数据对象,而不是代表性数据结构。
1赞 76484 4/11/2023
您需要对数据进行 JSON 编码,以便您的输出是有效的 Javascript。
0赞 freedomn-m 4/11/2023
根据您的 c#/MVC 版本:然后var data = '@JsonSerializer.Serialize(Model.Basisdatenliste)';$.each(data, ...
0赞 Zehbart 4/12/2023
谢谢!JSON部分是我所缺少的。我添加了 JSON。Enxode,它现在正在工作。

答: 暂无答案