Has*_*Mir 3 asp.net-mvc asp.net-mvc-5
我在实体A的详细信息视图中有以下代码
<dt>
@Html.DisplayNameFor(model => model.User1.UserName)
</dt>
<dd>
@Html.DisplayFor(model => model.User1.UserName)
</dd>
Run Code Online (Sandbox Code Playgroud)
我想更改其在“详细信息视图”中显示的标题,该标题显示了要由其提交的UserName,因此无法重载,因为DisplayName对于没有带有两个参数的任何重载函数均无法
@Html.DisplayFor(model => model.User1.UserName,"Submitted By")正常工作
这是我的错误模型,我在其中分配和提交的字段与用户模型相关,所以我遇到问题,即“用户名”显示在“名称”列的位置,该列应将名称显示为“分配给” ”和“提交者”
public partial class Bug
{
public int ID { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public string Priority { get; set; }
public string Severity { get; set; }
public string Status { get; set; }
public int AssignedTo { get; set; }
public int SubmittedBy { get; set; }
public int ComponentID { get; set; }
public int ProjectID { get; set; }
public System.DateTime DueDate { get; set; }
public Nullable<int> BugNumber { get; set; }
public string NormalFlow { get; set; }
public System.DateTime CreationDate { get; set; }
public virtual Component Component { get; set; }
public virtual Project Project { get; set; }
public virtual User User { get; set; }
public virtual User User1 { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
您可以通过模型上的[Display]属性控制显示的文本。在您的情况下,您需要在User1的基础模型上设置属性:
public class User
{
[Display(Name = "Submitted By")]
public string UserName;
}
Run Code Online (Sandbox Code Playgroud)
有关DisplayAttribute类的更多详细信息,请参见https://msdn.microsoft.com/zh-cn/library/system.componentmodel.dataannotations.displayattribute.name%28v=vs.110%29.aspx。
只要您要更改标签的显示文本,就无需更改模型。. 只需像这样编辑Razor View:
<dt>
@Html.DisplayName("Submitted By")
</dt>
<dd>
@Html.DisplayFor(model => model.User1.UserName)
</dd>
Run Code Online (Sandbox Code Playgroud)
要么
<dt>
Submitted By
</dt>
<dd>
@Html.DisplayFor(model => model.User1.UserName)
</dd>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8286 次 |
| 最近记录: |