0

我正在使用 ASP.NET MVC 创建一个 Web 应用程序,并且偶然发现了一种情况,我不确定最佳解决方案是什么。

我有一个用户页面,我只是将用户列表及其角色加载到表中。角色是复选框,例如 Manager 和 Administrator 是两个单独的角色,在该行上为用户表示为复选框。

最右列是一个带有 3 个按钮的操作字段:保存、更改密码和删除。

更改密码的工作原理是打开一个对话框并在控制器上点击一个名为 ChangePassword 的操作,这是一个 Post 请求,因为表单位于不同的区域,并且使用 JavaScript 将一些值设置为隐藏字段。

Delete 通过调用一个名为 Delete 的操作来工作,该操作是一个 Get 请求,其中在视图中,操作参数是使用模型中的值显式设置的。由于这些值不会改变,我可以安全地做这样的事情:

@Url.Action("Delete", new { loginName = Model.Users[i].LoginName, username = Model.Users[i].Username })

但是,保存操作是不同的,因为保存操作旨在用于更新用户角色,用户可以通过选择不同的复选框来更改角色。我最初的计划是让 Save 操作成为 Get 请求,并传递类似于我使用 Delete 执行此操作的值,但我需要使用 JavaScript 设置某种隐藏字段,以便我知道哪些字段已更新。

另一种解决方案是让每个表格行成为一个表单并进行保存发布操作,并将复选框中的值绑定到操作上的模型。我不确定是否会建议这样做,因为这可能意味着页面上有 50 多个表单,具体取决于我拥有的用户数量。

我很感激关于这个问题的一些建议。

谢谢

4

1 回答 1

0
  1. GET请求不应该改变您的应用程序的状态,即它不应该删除或修改用户。

  2. 我将使用ASP.Net Membership Provider并在控制器操作中调用其各自的方法。

于 2013-04-15T16:20:05.017 回答