我正在使用 ASP.NET MVC 4,但我在理解上遇到了一些问题。为了更好地解释,我将使用一个简单的“合成”情况。假设我有具有 2 个属性的模型 Person:
- 字符串名称
- PersonType 类型(例如学生、雇员、军人...)
假设在我的控制器中我有私有财产 Person。我可以在 Index 方法中初始化这个对象,传递给 View 并构建 html 页面。好的。
现在,当用户在客户端更新人员实例的一个字段时(他可以输入新的人名或使用下拉列表选择新的人员类型),我想立即更新我的模型。所以,我的一般问题是如何实现它?
对我来说明显的解决方案:我可以使用新数据从 JS 向控制器发送 ajax 请求。我认为我可以调用控制器的方法 UpdateName(string name) 并使用新数据手动更新属性 Name。但是我的 person 实例在这个方法中是 NULL !我的第二个问题是为什么我不能从其他方法访问初始化模型对象?我认为这完全是因为我对客户端服务器交互的理解不好。
我的情况的最后一种情况:当用户单击“保存”按钮时,我想将创建的人员保存到服务器端的文件中,但我不想在单击此按钮后使用任何表单并接收所有需要的数据(因为在我的实际任务中,我不能使用表单,也不能在单击按钮后从 html 页面接收所有需要的字段)。
我找到了肮脏的解决方案。在 JS 中,我创建了另一个具有相同属性的类 Person。现在我可以在需要时更新此类的实例并将 json 数据传递给服务器以保存它。
有没有更好的解决方案?