基于editorfor值更新displayfor

时间:2013-04-04 10:49:43

标签: c# asp.net-mvc viewmodel

有没有办法根据我在模板编辑器中输入的值更新displayfor值?我已经创建了一个自定义编辑器和displayfor template:

@model Models.AddressViewModel

<div class="address">
<div class="row">
    <div class="label">@Html.DisplayFor(model => model.Street)</div>
    <div class="label">@Html.DisplayFor(model => model.HouseNumber)</div>
</div>
<div class="row">
    <div class="label">@Html.DisplayFor(model => model.City)</div>
    <div class="label">@Html.DisplayFor(model => model.ZipCode)</div>
</div>

谢谢,

2 个答案:

答案 0 :(得分:0)

我在这里猜你的目的,但我猜他们同时在同一页上?如果是这样,你可以简单地使用jQuery来动态更新值。

@model Models.AddressViewModel

<div class="address">
<div class="row">
    <div class="label label-street">@Html.DisplayFor(model => model.Street)</div>
    <div class="label label-housenumber">@Html.DisplayFor(model => model.HouseNumber)</div>
</div>
<div class="row">
    <div class="label label-city">@Html.DisplayFor(model => model.City)</div>
    <div class="label label-zipcode">@Html.DisplayFor(model => model.ZipCode)</div>
</div>

然后在jQuery中类似于:

$("input#zipCode").blur(function(){
    $("div.label-zipcode").text($(this).val());
});

或者,如果您的表单都是Ajax,您可以将编辑器值发布到控制器,然后回复显示视图。

我能用你提供的信息做得最好。祝你好运!

答案 1 :(得分:0)

你给我的解决方案几乎是正确的。 $(“div.label-zipcode”)。val($(this).val());,必须是$(“div.label-zipcode”)。html($(this).val());