页面上有大量的表单

本文关键字:表单 | 更新日期: 2023-09-27 18:09:10

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

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

在最右边的列是一个Actions字段,有3个按钮:保存,更改密码和删除。

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

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

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

但是,Save操作是不同的,因为Save操作意味着用于更新用户角色,用户可以通过选择不同的复选框来更改用户角色。我最初的计划是使Save操作成为Get请求,并将值传递进来,类似于我使用Delete这样做的方式,但我需要使用JavaScript设置某种隐藏字段,以便我知道哪些字段被更新。

另一种解决方案是将每个表行都作为表单,并使Save成为Post操作,并将复选框中的值绑定到该操作上的模型。我不确定这是否会被建议,因为这可能意味着页面上有50多个表单,这取决于我有多少用户。

我希望你能给我一些建议。

谢谢

页面上有大量的表单

  1. 一个GET请求不应该改变你的应用程序的状态,也就是说,它不应该删除或修改用户。

  2. 我会使用ASP。Net Membership Provider,并在Controller Actions中调用其各自的方法。