使用jQuery在MVC中的DisplayFor和EditorFor之间切换

Spe*_*ets 2 asp.net-mvc jquery

必须有一种方法可以在我的View上切换DisplayFor和EditorFor div.我想单击"显示"字段旁边的"编辑"按钮,并隐藏DisplayFor元素并显示EditorFor字段.完成文本更新后,我想在"编辑器"字段中提交表单和数据.

我不确定为什么这不起作用,提示?

我的jQuery

<script type="text/javascript">

function myFunction(element) {

    $(element).find("span.item-display").html($(element).find("span.item-field").find(":input:first").val());
    $(element).find("span.item-display")
        .show()
        .next("span.item-field")
        .hide();
}
Run Code Online (Sandbox Code Playgroud)

我的HTML视图

<dt><strong>@Html.LabelFor(m => m.FirstName) </strong></dt>
        <dd>
            <span class="item-display">
                @Html.DisplayFor(m => m.FirstName)
            </span>
            <span class="item-field" style="display:none">
                @Html.EditorFor(m => m.FirstName)
            </span>

            <span>
                <button type="button" onclick="myFunction(this)" />

            </span>
        </dd>
Run Code Online (Sandbox Code Playgroud)

Hir*_*ana 5

使用Jquery切换如下:

<dt><strong>@Html.LabelFor(m => m.FirstName) </strong></dt>
    <dd>
        <span class="item-display toggle-control">
            @Html.DisplayFor(m => m.FirstName)
        </span>
        <span class="item-field toggle-control" style="display:none">
            @Html.EditorFor(m => m.FirstName)
        </span>

        <span>
            <button type="button" onclick="toggler()" />

        </span>
    </dd>
  </dt>

<script>
function toggler()
{
    $(".toggle-control").toggle();
}
</script>
Run Code Online (Sandbox Code Playgroud)