Я хочу отобразить метку и ее значение при изменении значения выпадающего списка. Например, если при изменении AddressType я хочу отобразить метку AddressLine1 и ее соответствующее значение.
Я могу отобразить часть <td></td>
и ярлык также отображается. Но значение Address1
не отображается. Я попытался установить в ViewBag
а затем использовать его в <td></td>
но это не работает. Я также попытался установить значение displayFor
id. но это тоже не работает.
Как я могу отобразить значение?
Код:
<td id="Address1Label">
@Html.LabelFor(model => model.Address1)
</td>
<td id="Address">
@this.ViewBag.AddressLine1
@Html.DisplayFor(model => model.Address1, new {@id = "Address1" })
</td>
$(document).ready(function () {
$('#Address1Label').hide();
$('#Address').hide();
});
$(function () {
$('#AddressType').change(function (e) {
// i call an Action and get the result as json
if (data.HomeAddress != null) {
$('#Address1Label').show();
$('#Address').show();
// $('#Address1').val(data.HomeAddress.Address1);
$('#Address1').html(data.HomeAddress.Address1);
});
Насколько я знаю
@Html.DisplayFor<TModel, TValue>
по умолчанию игнорируйте свои атрибуты перегрузки html, что означает
<td> @Html.DisplayFor(model => model.Address1, new {@id = "Address1" }) </td>
создавать только текст
<td> Address </td>
вместо того, что вы думаете
<td><xxx id="Address1"> Address </xxx></td>
Поэтому, если вы хотите изменить это значение, вы можете сделать
$('#Address').html(data.HomeAddress.Address1);