0

私のコードは

public class TarkibVM:BaseVM
{
    public int TarkibID { get;set;}

    [UIHint("KhorakTarkibList")]
    public KhorakTarkibVM[] KhorakTarkibVms { get; set; }}


public class KhorakTarkibVM
{
    public int KhorakID{ get;set;}

    public string Name{ get;set;}
}

KhorakTarkibList.cshtml :

@model MvcMarkazToyoor.Models.KhorakTarkibVM[]

<table>

@for (int index = 0; index < Model.Count(); index++)
{
    <tr>
        @Html.EditorFor(modelItem => modelItem[index])
    </tr>
}
</table>

KhorakTarkibVM.cshtml :

@model MvcMarkazToyoor.Models.KhorakTarkibVM

<td>
    @Html.EditorFor(modelItem => modelItem.Checked)
</td>
<td>
    @Html.DisplayFor(modelItem => modelItem.KhorakID)
    @Html.HiddenFor(modelItem => modelItem.KhorakID)
</td>
<td>
    @Html.DisplayFor(modelItem => modelItem.Name)
</td>

Create.cshtml :

@model MvcMarkazToyoor.Models.TarkibVM

@using (Html.BeginForm()) {
@Html.ValidationSummary(true)

    <div class="editor-label">
        @Html.LabelFor(model => model.GroupID)
    </div>
    <div class="editor-field">
        @Html.EditorFor(model => model.TarkibID)
        @Html.ValidationMessageFor(model => model.TarkibID)
    </div>
    <div class="editor-field">
        @Html.EditorFor(model => model.KhorakTarkibVms)
    </div>

    <p>
        <input type="submit" value="Create" />
    </p>}

このコードでは、配列入力の名前が正しくないことを除いて、すべて問題ありません name="KhorakTarkibVms[0].Percent" を期待していますが、生成された名前は name="KhorakTarkibVms.[0].Percent"

ご協力いただきありがとうございます

4

1 に答える 1

0

1-この状況では配列を使用できません。代わりに使用してくださいList<>

2-反復する必要がKhorakTarkibVmsないため、必要ありませんKhorakTarkibList.cshtml

これは新しいTarkibVMクラスです:

public int TarkibID { get; set; }
public int GroupID { get; set; }
public List<KhorakTarkibVM> KhorakTarkibVms { get; set; }

KhorakTarkibList.cshtml削除したり、名前を変更したり、削除したりしないでくださいUIhintAttribute

反復しないでくださいKhorakTarkibVms。したがって、新しいのCreate.cshtmlは次のとおりです。

@model MvcMarkazToyoor.Models.TarkibVM

@using (Html.BeginForm()) {
@Html.ValidationSummary(true)

    <div class="editor-label">
        @Html.LabelFor(model => model.GroupID)
    </div>
    <div class="editor-field">
       @Html.EditorFor(model => model.TarkibID)
       @Html.ValidationMessageFor(model => model.TarkibID)
    </div>
    <div class="editor-field">
       <table>
           @Html.EditorFor(model => model.KhorakTarkibVms)
       </table>
    </div>

    <p>
        <input type="submit" value="Create" />
    </p>
}

new に tr タグを追加しKhorakTarkibVM.cshtmlます。

<tr>
    <td>
        @Html.EditorFor(modelItem => modelItem.Checked)
    </td>
    <td>
        @Html.DisplayFor(modelItem => modelItem.KhorakID)
        @Html.HiddenFor(modelItem => modelItem.KhorakID)
    </td>
    <td>
        @Html.DisplayFor(modelItem => modelItem.Name)
    </td>
</tr>
于 2012-12-18T10:10:06.517 に答える