【问题标题】:How to fill IEnumerable<T> after HttpPost request mvc 3?HttpPost请求mvc 3后如何填写IEnumerable<T>?
【发布时间】:2012-08-01 07:43:58
【问题描述】:

我想用下面的代码制作一个表格,我为视图开发了模型:

【问题讨论】:

  • 你确定AssembliesOperation.GetClasses(path, typeof(JobBase)) 真的返回了什么吗?
  • 程序的哪一部分显示在带有调试的屏幕截图上?它看起来不像上面的任何代码 sn-ps。
  • Danile:我相信 IsNotDefined 和 IsDefined 也是空的。
  • Andrei:我添加了您的请求。谢谢...

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


【解决方案1】:

请阅读以下博客文章以更好地了解模型绑定如何用于集合以及您的输入字段应如何命名:http://www.hanselman.com/blog/ASPNETWireFormatForModelBindingToArraysListsCollectionsDictionaries.aspx

好的,现在让我们摆脱这个foreach 循环并使用编辑器模板,好吗?

<table style="width:65%; vertical-align:top" id="sample">
    <%= Html.EditorFor(x => x.Properties) %>
</table>

现在定义一个编辑器模板,该模板将自动为属性集合的每个元素呈现 (~/Views/Shared/EditorTemplates/PropertyModel.ascx):

<%@ Control 
    Language="C#" 
    AutoEventWireup="true" 
    Inherits="System.Web.Mvc.ViewUserControl<PropertyModel>" 
%>
<tr>
    <td>
        <%= Html.LabelFor(x => x.ParameterName) %>
    </td>
    <td>:</td>
    <td>
        <%= Html.TextBoxFor(x => x.ParameterName) %>
    </td>
</tr>

就这些单选按钮而言,您的设计存在一些问题。它们不是集合模型的一部分,而是主视图模型的一部分,但是您将它们放在为集合属性的每个元素呈现的 foreach 循环中。您可能需要重新考虑您要在这里做什么。

【讨论】:

    猜你喜欢
    • 2011-05-13
    • 2017-07-01
    • 1970-01-01
    • 2021-11-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-25
    • 1970-01-01
    相关资源
    最近更新 更多