gpt4 book ai didi

asp.net-mvc - HTML 提交按钮与基于 AJAX 的发布 (ASP.NET MVC)

转载 作者:行者123 更新时间:2023-12-04 17:58:59 25 4
gpt4 key购买 nike

我在寻求一些设计建议。

我正在与一位开发人员一起开发一个应用程序。我来自 Webforms 世界,他在 jQuery 和 AJAX 方面做了很多工作。我们正在合作开发一个新的 ASP.MVC 1.0 应用程序。

他做了一些非常了不起的事情,我刚刚开始思考,并为数据网格等使用了一些 3rd 方工具等。

但...

他很少使用提交按钮,而我大部分时间都使用它们。他使用了一个按钮,但随后将 Javascript 附加到该按钮上,该 Javascript 调用了一个返回 JSON 对象的 MVC 操作。然后他解析对象以更新数据网格。我不确定他如何处理服务器端验证 - 我认为他向 JSON 对象添加了一个消息属性。一个示例场景是“保存”一条新记录,然后将其添加到 GridView 中。

用户没有看到这样的回发,因此他使用 jQuery 在 Controller 操作运行时禁用 UI。

TBH,它看起来很酷。

但是,我这样做的方式是使用提交按钮回发,让 ModelBinder 填充类型化模型类,在我的 Controller Action 方法中解析它,更新模型(并对模型应用任何验证),更新它与新记录一起,然后将其发回以由 View 呈现。与他不同的是,我不返回 JSON 对象,而是让 View (和数据网格)绑定(bind)到新的模型数据。

两种解决方案都“有效”,但我们显然将应用程序带入了不同的路径,因此我们中的一个人必须重新编写我们的代码......我们不介意谁必须完成。

我更喜欢的是我们采用“行业标准”的方式来做这件事。我不确定我的 WebForms 背景是否影响了他的方式只是“感觉不对”这一事实,因为“提交”意味着向服务器提交数据。

请提供任何建议 - 非常感谢。

最佳答案

您需要考虑的是如果 javascript 不可用,应用程序将如何工作。您应该努力确保基本功能在没有它的情况下也能正常工作。这称为渐进增强或不显眼的 javascript,被认为是最佳实践。

http://en.wikipedia.org/wiki/Progressive_enhancement

您应该这样做的方法是使用带有真正提交按钮的表单,然后如果用户代理支持它,则劫持该表单以使用 ajax。使用 jquery forms 插件这通常很简单。在您的操作方法中,您可以通过检查 Request.IsAjaxRequest 属性来检查传入请求是否是 ajax 请求。这是由 MVC 在 X-Requested-With header 设置为 XMLHttpRequest 的请求上自动设置的。然后你会返回一个完整的 View 或只是一些基于它的 json。

这是一个简短的截屏视频,展示了这一点:http://www.youtube.com/watch?v=YQsFR1rkgMU&feature=player_embedded

关于asp.net-mvc - HTML 提交按钮与基于 AJAX 的发布 (ASP.NET MVC),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2567048/

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