【问题标题】:How to pass Value to HashSet of a Model from View C#如何从 View C# 将值传递给模型的 HashSet
【发布时间】:2016-07-13 00:58:21
【问题描述】:

在我看来,我正在尝试使用 Razor html.hidden 填充模型。 模型必须具有属性第一个是常规列表,我执行常规 for 循环,.hidden 在那里工作没有任何问题,但我不能用 foreach 做同样的事情

foreach (var dup in Model.DuplicateNum)
            {
            <tr>
                <td>
                    <h1 style="color:red">@dup</h1>*
                    @Html.HiddenFor(x => @dup)
                </td>
            </tr>
            }

所以DuplicateNumHashSet。当我运行该代码时,Model.DuplicateNum 为空。如何使用Razor 填写HashSet。 这是我如何将值从视图传递到模型

List 下面的代码工作并将值传递给我模型中的一个属性,另一个属性没有被归档..

int subjectsCount = Model.AssignedNumbers.Count();
for (int item = 0; item < subjectsCount; item++)
            {
                <tr>
                    <td>
                        @Model.AssignedNumbers[item]


                        @Html.HiddenFor(x => x.AssignedNumbers[item])


                    </td>
                </tr>
            }

【问题讨论】:

  • 对不起!我无法理解您的问题。您认为 NULL 吗?您是否从您的操作方法中加载了该属性?
  • @Shyju 感谢您的回复,所以我有一个以 HTML 格式显示结果的视图。该 HTML 呈现相同的视图,但为了让我将这些信息传递回相同的模型,我正在使用 Razor 。我将添加有关如何填写其他列表并逐个传递值的另一部分
  • DuplicateNum 的类型是什么?
  • @Lukos HashSet public HashSet DuplicateNum { get;放; }

标签: c# asp.net-mvc razor


【解决方案1】:

首先,您的HiddenFor 看起来不对。 @Html.HiddenFor(x =&gt; @dup) 表示在您的模型上下文中,使用您的 dup 的值创建一个隐藏。模型绑定器使用名称和值,所以我看不出它如何将任何东西绑定到属性DuplicateNum

您可以自己指定名称并使用我认为应该可以使用的@Html.Hidden("DuplicateNum", dup),或者您可以以某种方式使用HiddenFor(),但它需要绑定到正确的属性(DuplicateNum)但是仍然知道要显示哪个项目,所以我不知道该怎么做。

您也可以使用纯 html 并只渲染像 &lt;input type="hidden" name="DuplicateNum" value="@dup"/&gt; 这样的东西,我在我的一个视图中使用过它,它也以一种更手动和更易于理解的方式绑定!

【讨论】:

  • 非常感谢,非常好的信息。我是 C# 和 razor 的新手,你知道我可以在哪里阅读更多关于 @Html 的信息...以及我可以使用的不同类型的东西,比如 Hiddenfor() 或 Hidden() 以及其中包含哪些类型的值跨度>
  • 我不知道太多了,周围有很多东西,其中一些是旧的。最好记住的是 HtmlHelper 只在一天结束时生成纯 HTML,并且只使用名称和值来绑定事物。在最坏的情况下,使用一些基本的模型绑定制作一个假装视图,看看运行它时会发生什么,你会看到它如何绑定到不同类型的属性等。
  • 所以 ...For() 方法只是一种确保生成正确名称和类型而无需键入它们的方法,它们不是每个都需要的神奇强力胶绑定类型!您可以使用纯 HTML 和硬编码文本或 HtmlHelper 方法进行绑定。
猜你喜欢
  • 2020-11-02
  • 1970-01-01
  • 2013-08-21
  • 2016-09-23
  • 1970-01-01
  • 2020-08-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多