0

モデルforViewを開発した以下のコードを使用してフォームを作成したい:

4

1 に答える 1

2

コレクションのモデルバインディングがどのように機能し、入力フィールドにどのように名前を付けるかをよりよく理解するには、次のブログ投稿をお読みください。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ループ内に配置しています。ここで何をしようとしているのかを再考する必要があるかもしれません。

于 2012-08-01T16:18:42.480 に答える