【问题标题】:ASP.NET MVC List population in strongly typed views强类型视图中的 ASP.NET MVC 列表填充
【发布时间】:2009-11-12 20:24:23
【问题描述】:

一点背景:

我正在构建一个 MVC 应用程序来存储高尔夫球场数据并创建了一个创建视图 课程页面。这包含记分卡的部分视图,我将用于其他事情,例如记录结果等。 我目前已经构建了记分卡,以便在编辑时触发 jQuery 触发器。课程创建的 jQuery 代码绑定到这些事件,并为 18 个孔中的每一个填充隐藏的表单输入。

问题:

我想知道我是否需要在我的创建页面上有大量隐藏的表单输入来存储触发的值,或者我是否可以在我的视图模型中有一个可以以某种方式更新的列表。

任何比我目前拥有的更优雅的解决方案都会有所帮助。

【问题讨论】:

    标签: jquery asp.net-mvc jquery-events strongly-typed-view


    【解决方案1】:

    您可以创建一个像 ScorecardFormViewModel 这样的自定义类,并包含您需要的项目作为属性,并让您的 View 继承 ScorecardFormViewModel

    编辑:

    public class ScoreCardFormViewModel {
    
    // Properties
    public List<ParValues> { get; private set; }
    
    public GolfCourse GolfCourse {get; private set;}
    
    public ScoreCardFormViewModel(int golfCourseId)
    {
        GolfCourse = SomeMethodToGetGolfCourseFromModel(golfCourseId);
        // Some way to populate ParValues
    }
    
    }
    

    我刚刚创建了一个 ParValue 列表,可能过于简单,但您可以在此处放置任意数量的属性

    【讨论】:

    • 感谢您的回答,这样做可能会有所帮助。我不认为这将允许我在 ScorecardFormViewModel 中有一个列表,我可以在 ViewModel 上没有大量冗余属性(例如引用该列表的“private int Hole1Par”)的情况下对其进行更新。如果可以的话,你能解释一下我怎么能做到这一点,因为这将是完美的。谢谢
    【解决方案2】:

    我相信 Phil Haack 的 this post 可能对您有用。它描述了如何使用默认的 ASP.NET MVC 模型绑定器来使用来自多个客户端输入元素的数据填充列表(在您的示例中,它将是每个孔的各种文本框等)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多