0

一連の非表示フィールドに値を入力するプロパティ:

public abstract class MyPageView
{        
    [UIHint("List")]
    public IEnumerable<IOption> OptionList { get; set; }
}

そのためのコマンド:

@Html.EditorFor(m => m.OptionList)

定義済みの「リスト」テンプレートの実装:

@model IEnumerable<RoomWanted.FlatShare.Services.ViewModels.Options.IOption>

@for (int i = 0; i < Model.Count(); i++)
{    
    @Html.HiddenFor(x => Model.ToList()[i].Id)
    @Html.HiddenFor(x => Model.ToList()[i].Name)
}

私が生成したもの:

<input id="OptionList__0__Id" name="OptionList.[0].Id" type="hidden" value="1" />
<input id="OptionList__0__Name" name="OptionList.[0].Name" type="hidden" value="New York" />

モデルバインディングが正しく機能するように、生成する必要があるもの:

<input id="OptionList_0__Id" name="OptionList[0].Id" type="hidden" value="5"></input>
<input id="OptionList_0__Name" name="OptionList[0].Name" type="hidden" value="New York"></input>

そのドットを取り除く方法についてのアイデアはOptionList[0].IdありOptionList.[0].Idますか?

乾杯。

4

1 に答える 1

0

代わりにIList<IOption>orを使用します。IOption[]

public abstract class MyPageView
{        
    [UIHint("List")]
    public IList<IOption> OptionList { get; set; }
}

そしてあなたの見解では:

@model IList<RoomWanted.FlatShare.Services.ViewModels.Options.IOption>

@for (int i = 0; i < Model.Count; i++)
{    
    @Html.HiddenFor(x => x[i].Id)
    @Html.HiddenFor(x => x[i].Name)
}
于 2013-03-17T22:05:01.073 に答える