【问题标题】:.NET MVC Dynamically add/remove items without using javascript.NET MVC 在不使用 javascript 的情况下动态添加/删除项目
【发布时间】: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


【解决方案1】:

我不确定你在这里问什么;是如何在表格中删除和添加列表还是如何发帖?

我会尽量回答两个:

1:不使用 javascript 发布:

您可以通过命名属性来发布的假设是正确的!但是,如果您希望表格中有新人,则必须重新加载页面。阅读您的描述,我认为这不是您真正想要的。

2:添加一行不带javascript:

这是无法做到的。为此,您需要 javascript 或使用数据绑定的 javascript 框架(有很多)

我强烈建议您决定页面重新加载是否会破坏您的解决方案。如果是,请尝试使用 jQuery 或更好的方式解决您的问题:调查使用数据绑定(knockoutjs、angular、react 等)的 javascript 框架。这些框架有一个学习曲线,但它们让您的开发人员生活更加轻松,并提高了代码的可维护性。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多