我希望在更改下拉列值时显示标签及其值。 例如: - 当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);
});
答案 0 :(得分:0)
据我所知
@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);