0

asp.net を使用して Web サイトを作成しています。
最初にいくつかのモデルを作成しましたが、これはその 1 つです。

public class User
{
    [Key]
    public int UserID { get; set; }
    public string UserName { get; set; }
    public string Password { get; set; }
    public virtual ICollection<Subscription> Subscriptions { get; set; }
}

次に、強く型付けされたビューをいくつか作成しました。そのうちの 1 つは次のようになります。

@model IEnumerable<Liquidity_Web.Models.User>

@{
    ViewBag.Title = "Index";
}

<h2>Index</h2>

<p>
    @Html.ActionLink("Create New", "Create")
</p>
<table>
    <tr>
        <th>
            @Html.DisplayNameFor(model => model.UserName)
        </th>
        <th>
            @Html.DisplayNameFor(model => model.Password)
        </th>
        <th></th>
    </tr>

@foreach (var item in Model) {
    <tr>
        <td>
            @Html.DisplayFor(modelItem => item.UserName)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.Password)
        </td>
        <td>
            @Html.ActionLink("Edit", "Edit", new { id=item.UserID }) |
            @Html.ActionLink("Details", "Details", new { id=item.UserID }) |
            @Html.ActionLink("Delete", "Delete", new { id=item.UserID })
        </td>
    </tr>
}
</table>

しかし、これは

@Html.DisplayNameFor(model => model.UserName)

視野に入れてくれ"UserName"ます。"User Name"表示(スペース区切り)を希望します。
私はヘルパー機能を持っています

public List<string> SplitHelper(string target);

しかし、かみそりビュー内でそれを使用するにはどうすればよいですか? 私は試した

@Html.DisplayNameFor(model => StringSplit(model.UserName))

、しかしそれは機能しません..
また、文字列の間隔を空けることはビューの責任であってはならないと感じています。しかし、どこでどのようにすればよいのでしょうか?

4

1 に答える 1

4

このようなデータ注釈を使用すると、はるかに簡単になる可能性があります-

[DisplayName("User name")]
public string UserName { get; set; }

@Html.LabelFor(model => model.UserName)
@Html.DisplayFor(model => model.UserName)
于 2013-06-21T14:47:47.353 に答える