gpt4 book ai didi

javascript - 支持 AJAX 和传统 POST 的 ASP.NET MVC 表单

转载 作者:行者123 更新时间:2023-11-29 20:23:52 26 4
gpt4 key购买 nike

我有一个表单,我目前使用一些 Javascript 功能枚举,然后使用 jQuery .ajax() 将其发布到 MVC Controller 操作。如果我想为发布此表单添加传统(无 javascript)支持,我对我的选择几乎没有疑问。

1) 问题是我有一些数据不在字段中,但它只是 div 中的文本。因为我目前使用 AJAX 发帖,所以我可以在发帖前通过它们的 id 获取这些 div 的内容,并将它们包含在帖子中。我假设传统 POST 中会缺少此信息。

一个想法是制作一个 <input>对于这些 div 也一样,但将其隐藏在页面上。然后在 POST 中使用它们。

2) 如果我决定只使用 AJAX post,我可以完全摆脱表单吗?

3) 鉴于我坚持使用 AJAX 发布,您建议使用什么格式发布值? JSON,逗号分隔(对于复杂数据有问题),还有别的吗?

4) 你通常支持这两种方式吗?因为如果我现在查看我的表单,它们使用了大量的 jQuery 和 jQuery UI 功能,如果没有 JavaScript 来实现这些功能就太过分了。用户不启用 JS 的可能性有多大?可以只说“需要 JS”吗?

对于这个具体案例,我正在构建一个内部的按需应用程序,它不会面向 Web(至少现在还没有),所以我可以选择说需要 JS。

类型

最佳答案

如果您想在没有 javascript 的情况下维护一个可用的网站,那么我建议您首先让一个网站在没有它的情况下也能正常工作,然后使用 javascript 将该界面修改为您真正想要的界面并启用 javascript .这需要从 input 元素中包含的所有输入开始,然后使用 javascript 将这些元素替换为您的 div 元素——或者,更现实地说,删除 inputs 并显示预先存在的 div 元素。

我认为即使在使用 AJAX 时也没有必要摆脱表单,尽管从技术上讲没有理由拥有它。然而,我喜欢做的一件事是保留表单,然后让我的提交方法从 form 标记中提取操作,这样我就不需要直接在 javascript 中对其进行编码。您可能会发现这使得在各种表单之间共享 javascript 变得更加容易。

我总是序列化请求参数,就像表单通常那样。最简单的方法是使用 jQuery serialize 方法,但这只适用于输入。您还可以构造一个散列(对象中的键值对)并将其作为 AJAX 的数据参数提供。它会自动序列化为请求参数。使用其他任何东西都需要您使用自己的代码而不是 MVC 中的模型绑定(bind)代码进行反序列化。

对于面向公众的 Web 应用程序,我尝试让界面在启用和禁用 javascript 的浏览器中均能正常工作。不过,非 JavaScript 浏览器有时无法访问某些功能。对于内部应用程序,我很乐意要求使用 javascript,因为您(或您公司的某个人)可以更好地控制它。

关于javascript - 支持 AJAX 和传统 POST 的 ASP.NET MVC 表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2341529/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com