向@html.textboxfor()添加第二项

向@html.textboxfor()添加第二项,html,html.textboxfor,Html,Html.textboxfor,我有一个设置为只读的文本框,它当前保存着一个人的姓氏。我现在需要做的是添加到它,这样这个人的后缀(II、III、Sr、Jr等)就会显示在他们姓氏旁边的文本框中。 这就是我到目前为止只知道姓氏的情况。我不知道如何添加后缀部分(m.Person.suffix)。我所尝试的一切都导致了错误 <div class="control-group"> <label>Last Name</label> <div class="controls">

我有一个设置为只读的文本框,它当前保存着一个人的姓氏。我现在需要做的是添加到它,这样这个人的后缀(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>

姓
@Html.TextBoxFor(m=>m.Person.LastName,新的{@readonly=“readonly”})

如果此选项始终为只读,则可以将其添加到您的模型中:

public string LastNameWithSuffix
{
    get { return String.Format("{0} {1}", Person.LastName, Person.Suffix); }
}
然后,您只需在文本框中更改代码,直接引用m.lastname和uffix:

<div class="control-group">
    <label>Last Name</label>
    <div class="controls">
        @Html.TextBoxFor(m => m.LastNameWithSuffix, new { @readonly = "readonly" })
    </div>
</div>

姓
@Html.TextBoxFor(m=>m.LastNameWithSuffix,new{@readonly=“readonly”})

我相信这只能通过使用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
}
这将是我处理这个问题的方式,尽管可能还有其他方法