在下拉值更改时显示标签及其值

时间:2014-04-15 23:46:18

标签: javascript jquery asp.net-mvc-3 razor

我希望在更改下拉列值时显示标签及其值。 例如: - 当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);
        });

1 个答案:

答案 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);