【发布时间】:2018-04-20 05:58:52
【问题描述】:
我在一个 C# .NET MVC 项目中,并且有一个可以动态添加/删除列表中 n 个复杂对象的表单。例如,这个复杂的对象代表一个人。此人具有 FirstName 和 Address 属性。
当用户加载页面时,系统中的所有人员都显示在列表中。当用户按下“添加”按钮时,会出现两个新的文本框,用于显示 Person 的 FirstName 和 Address 属性。当用户按下提交按钮时,它将向服务器发出 POST 请求。
我知道您可以在 View 中编写常规 html,并且可以使用 Javascript 为 FirstName 和 Address 属性添加新的 DOM 元素。
关于用户何时提交,我可以使用 javascript 抓取屏幕中的所有数据,并向服务器发送 POST 请求。理论上,另一种方法是不使用javascript,只需让按钮将表单提交给控制器的POST动作即可;如果我为我的 DOM 元素提供正确的名称属性,则 Action 应该能够识别数据。
但是,有没有一种 MVC 方法可以做到这一点?也许,在 Razor Helpers 的帮助下?
【问题讨论】:
-
如果没有 JavaScript,您将无法做到这一点。你能做的最好的就是从服务器获取渲染的 HTML(使用 Razor)并在需要的地方替换。
-
"不使用javascript,只需让按钮将表单提交给控制器的POST操作"是的。这就是网络在人们之前使用 Ajax 的方式。 ASP.Net 中默认生成的视图正是以这种方式工作的,但当然它们不会动态添加新的表单字段。你需要 javascript
标签: c# asp.net .net model-view-controller