我正在使用asp.net创建一个网站 我首先创建了一些模型,这是其中之一:
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; }
}
然后我创建了一些强类型视图,其中一个看起来像这样:
@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))
,但它不起作用。
我也觉得间隔字符串不应该是Views的责任。但是我应该在哪里以及如何做到这一点?
答案 0 :(得分:4)
如果你像这样使用data Annotation -
,这可能会容易得多[DisplayName("User name")]
public string UserName { get; set; }
@Html.LabelFor(model => model.UserName)
@Html.DisplayFor(model => model.UserName)