2014-12-16 4 views
2

У меня есть TextBoxFor, который установлен только для чтения, и в настоящее время он содержит фамилию человека. То, что мне теперь нужно сделать, это добавить к нему, чтобы суффикс человека (II, III, Sr., Jr. и т. Д.) Показывался в текстовом поле рядом с их фамилией. Это то, что у меня есть пока только с фамилией. Я не могу понять, как добавить к нему часть суффикса (m.Person.Suffix). Все, что я пробовал, вызвало ошибку.Добавить второй элемент в @ html.textboxfor()

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

ответ

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> 
+0

Спасибо. Это сработало отлично! – AtlasBowler

0

Я считаю, что это может быть достигнуто только с помощью модели. В вашем контроллере вместо передачи исходной модели данных вы должны передать 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 
} 

Это был бы мой способ приблизиться к этому, хотя возможны и другие методы.

Смежные вопросы