2

我有一个设置为只读的 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>
4

2 回答 2

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>
于 2014-12-16T19:23:17.193 回答
0

我相信这只能通过使用视图模型来实现。在您的控制器中,您将传递视图模型(在您的视图中使用)而不是传递原始数据模型,并且视图模型的实体之一将包含该组合。

public class ViewModel
{

public string LastName {get; set;}
public string Suffix {get; set;}
public string Combo {get; set;

//rest of data needed for view
}

这将是我解决这个问题的方法,尽管可能还有其他方法。

于 2014-12-16T19:23:44.077 回答