【问题标题】:generating Hidden from list properties?从列表属性生成隐藏?
【发布时间】:2013-12-03 07:24:18
【问题描述】:

对不起,伙计们,这可能是一个基本的事情,但我是新手。

我的模型是一个具有两个属性的列表,我需要为 1 个或两个属性生成 HiddenFor。在循环内部,我正在尝试使用以下代码生成 HiddenFor:

@foreach (StoredDocument doc in @Model)
{
    @Html.HiddenFor(@doc.Document);
    <img src="@doc.Document" />
}

但不确定我错在哪里,我收到消息:

无法从用法中推断方法“System.Web.Mvc.Html.InputExtensions.HiddenFor(System.Web.Mvc.HtmlHelper, System.Linq.Expressions.Expression>)”的类型参数。尝试明确指定类型参数。

请帮忙,谢谢

【问题讨论】:

    标签: c# asp.net-mvc asp.net-mvc-3 linq asp.net-mvc-4


    【解决方案1】:

    试试:

    @foreach (StoredDocument doc in Model) {
        @Html.HiddenFor(modelItem => doc.Document);
        <img src="@doc.Document" />
    }
    

    请记住,这可能不会以您希望的方式回传到服务器。您应该设置它,以便您的模型是一个 StoredDocument 数组,而不仅仅是一个 IEnumerable&lt;StoredDocument&gt;

    @model StoredDocument[]
    
    @foreach (int i = 0; i < Model.length; i++) {
        @Html.HiddenFor(modelItem => Model[i].Document);
        <img src="@Model[i].Document" />
    }
    

    【讨论】:

    • 非常感谢 DigitalID,非常感谢。只是为了澄清你的意思是使用列表我将无法在服务器上获取列表的值并在服务器上获取列表的值我应该使用数组?
    • 我的意思是使用数组,而不是 List。这真的取决于你为什么首先想要隐藏字段。
    • DigitalID 这对我来说确实是一个不常见的场景,从上一页开始,我通过拖放向页面添加了一些图像。我无法在第一页保存图像,因为保存按钮在第 2 页,我将图像作为隐藏传递给服务器,然后我需要在第二页显示相同的图像,单击保存将保存数据和图像。请问您有什么进一步的建议吗?非常感谢您宝贵的时间和指导。
    猜你喜欢
    • 2011-09-29
    • 1970-01-01
    • 2019-08-12
    • 1970-01-01
    • 2023-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-07
    相关资源
    最近更新 更多