在MVC.NET中使用html helper编辑模式

时间:2014-03-28 19:45:46

标签: javascript jquery html asp.net-mvc

我想使用@Html.DisplayFor助手将我的对象绑定到我的视图。然后单击编辑按钮并将其更改为@Html.DisplayTextBoxFor帮助程序。我想在客户端进行此更改。

例如:使用下面的视图

@Using Html.BeginForm("profile", "user", FormMethod.Post)
  @<h2>User Profile</h2>
  @<div>
    @Html.LabelFor(function(m) m.email)
    @Html.DisplayFor(function(m) m.email)
  </div>
  <input type="button" class="btn-primary" value="Edit Mode" />
  <input type="submit" class="btn-primary" value="Save" />  
End Using

点击“编辑模式”按钮,我希望电子邮件成为可编辑的文本框。我将以表格形式提交。

2 个答案:

答案 0 :(得分:0)

在这种情况下,您不必使用DisplayFor()

@Html.TextBoxFor(x => x.email, new {@readonly = "true", id = "email"})

<input type="button" class="btn-primary" value="Edit Mode" id="edit" />

然后使用JQuery

<script>
    $('#edit').on('click', function () {
       $('#email').attr('readonly', 'false');
    });

</script>

您需要为要访问的按钮添加ID。

答案 1 :(得分:0)

你问的是不可能的。您无法在客户端上运行服务器代码。

因此,您必须选择其他选项:

  • 使用TextBox,也用于显示内容,在需要时禁用并启用它们;
  • 使用AJAX调用从服务器加载编辑表单。创建一个Action,返回PartialView输出并加载它代替显示部分(例如,您可以使用jQuery从服务器获取实际结果);
  • 对服务器执行完整回发并重新加载整个页面。