4

以下は、コントローラーでインスタンス化されたリストに追加された各項目のラベルとテキストボックスを正しくレンダリングします。

私が必要とするのは、ラベルがリテラルの「FavouriteThingID」ではなく「FavouriteThingID」(つまり、1,2,3,4,5) の値を表示することです。

何か案は?

ビューモデル

public class FavouriteThingViewModel
{
    public int FavouriteThingID { get; set; }
    public string FavouriteThingName { get; set; }
}

エディタ テンプレート

@model _5fave.Models.FavouriteThingViewModel

<div class="control-group">
    @Html.LabelFor(m => m.FavouriteThingID, new { @class = "control-label" })
    <div class="controls">
        @Html.TextBoxFor(m => m.FavouriteThingName)
        @Html.ValidationMessageFor(m => m.FavouriteThingName, null, new { @class = "help-inline" })
    </div>
</div>

コントローラ

var favouriteThings = new List<FavouriteThingViewModel>();
    favouriteThings.Add(new FavouriteThingViewModel { FavouriteThingID = 1, FavouriteThingName = "Raindrops on roses" });
    favouriteThings.Add(new FavouriteThingViewModel { FavouriteThingID = 2, FavouriteThingName = "Whiskers on kittens" });
    favouriteThings.Add(new FavouriteThingViewModel { FavouriteThingID = 3, FavouriteThingName = "Bright copper kettles" });
    favouriteThings.Add(new FavouriteThingViewModel { FavouriteThingID = 4, FavouriteThingName = "Warm woolen mittens" });
    favouriteThings.Add(new FavouriteThingViewModel { FavouriteThingID = 5, FavouriteThingName = "Brown paper packages" });

    viewModel.FavouriteThings = favouriteThings;
4

3 に答える 3

3

最良の方法は、そのプロパティの表示属性を設定することです

public class FavouriteThingViewModel
{

  public int FavouriteThingID { get; set; }

  public string FavouriteThingName { get; set; }
}

あなたのcshtmlファイルで

@Html.DisplayFor(m => m.FavouriteThingID)

これにより、プロパティの値が表示されます。お役に立てれば。

于 2013-10-16T12:06:12.927 に答える
1

これは機能しています:

@Html.LabelFor(m => m.FavouriteThingName, Model.FavouriteThingID.ToString());
于 2013-10-16T13:44:22.610 に答える