我有一个设置为只读的TextBoxFor,它目前拥有一个人的姓氏。我现在需要做的是添加它,以便人的后缀(II,III,Sr.,Jr。等)显示在他们姓氏旁边的文本框中。 到目前为止,这只是姓氏。我无法弄清楚如何添加后缀部分(m.Person.Suffix)。我尝试的一切都造成了错误。
<div class="control-group">
<label>Last Name</label>
<div class="controls">
@Html.TextBoxFor(m => m.Person.LastName, new { @readonly = "readonly" })
</div>
</div>
答案 0 :(得分:2)
执行此操作的一种可能性,如果这将永远是只读的,将添加到您的模型:
public string LastNameWithSuffix
{
get { return String.Format("{0} {1}", Person.LastName, Person.Suffix); }
}
然后您可以在文本框中更改代码以直接引用m.LastNameWithSuffix:
<div class="control-group">
<label>Last Name</label>
<div class="controls">
@Html.TextBoxFor(m => m.LastNameWithSuffix, new { @readonly = "readonly" })
</div>
</div>
答案 1 :(得分:0)
我相信这可能只能通过使用viewmodel来实现。在您的控制器中,您将传递viewmodel(在视图中使用),而不是传递原始数据模型,而viewmodel的实体将包含组合。
public class ViewModel
{
public string LastName {get; set;}
public string Suffix {get; set;}
public string Combo {get; set;
//rest of data needed for view
}
虽然可能还有其他方法,但这将是我接近这一点的方式。