2014-02-16 49 views
3

我有一个局部视图,它被设置为表格/网格,显示来自数据库的记录 - 我可以很容易地获取它以显示该行的显示或编辑器模板,但是如何切换行从displayForeditorFor当我点击并编辑或保存链接?在EditorFor和DisplayFor之间切换

<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> 

回答

5

你可以做这样的事情在剃刀:

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

更新

如果你试图改变从一个视图到另一个根据用户的操作,你将不得不采取另一种方法。

例如,你可以在视图渲染两个:

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

,然后在您的客户端代码(假设你加载jQuery的),你可以这样做:

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

从切换display to editor