在EditorFor和DisplayFor之间切换 [英] Switch between EditorFor and DisplayFor

查看:74
本文介绍了在EditorFor和DisplayFor之间切换的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个局部视图,该视图被设置为显示数据库中记录的表格/网格-我可以轻松地获取它以显示该行的显示"或编辑器"模板,但是如何将行从displayFor切换为editorFor当我单击并编辑或保存链接吗?

I have a partial view which is setup as a table/grid showing records from a DB - I can easily get it to display my Display or Editor template for the row, but how can I switch the row from displayFor to editorFor when I click and edit or save link?

<div id="compQuestionListContainer">
    <div class="divQuestionItems">
        <div class="divQuestionItemsHeaderRow">
            <div class="QuestionHeader">Question Type</div>
            <div class="QuestionHeader question-name">Question Name</div>
            <div class="QuestionHeader question-required">Required</div>
            <div class="QuestionHeader question-group">Question Group</div>
            <div class="QuestionHeader">Modified By</div>
            <div class="QuestionHeader">Modified Date</div>
            <div class="QuestionHeader question-edit">Edit</div>
            <div class="QuestionHeader question-delete">Delete</div>
        </div>
        <div class="divOrderItemsBody">
            @Html.EditorFor(m => m.CompetitionQuestionList)
            @Html.DisplayFor(m => m.CompetitionQuestionList)
        </div>
    </div>
</div>

推荐答案

您可以在Razor中执行以下操作:

You can do things like this in Razor:

@{
   if (someCondition)
   {
      Html.EditorFor(m => m.CompetitionQuestionList);
   }
   else
   {
      Html.DisplayFor(m => m.CompetitionQuestionList);
   }
}

更新

如果您尝试根据用户操作从一个视图切换到另一个视图,则必须采取另一种方法.

Update

If you are trying to change from one view to another depending on user actions you will have to take another approach.

例如,您可以在视图中同时渲染两者:

For example, you can render both in the view:

<div id="editor" style="display:none;">
    Html.EditorFor(m => m.CompetitionQuestionList)
</div>
<div id="display">
    Html.DisplayFor(m => m.CompetitionQuestionList)
</div>

然后,在您的客户端代码中(假设您加载了jQuery),您可以执行以下操作:

And then, in your client code (assuming you load jQuery), you can do:

$("#editor").show();
$("#display").hide();

要从显示切换到编辑器.

这篇关于在EditorFor和DisplayFor之间切换的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆