在工作中我被抛到了深处。客户需要网络上的一些功能,我们的一个开发人员将ASP.Net webforms项目组合在一起。
当我开始时,由于受到限制,我得到了这个项目。我不是一个Web开发人员(我已经涉足过),但由于我已经投入到项目中,客户现在正在寻找更多功能来构建到Web解决方案中。
我想看看MVC(在我自己的时间)。以期将项目转换为它。我来自Xaml背景,因此MVx和我一起生活。
除了一件事,我似乎已经将大部分基本理论确定下来了。在视图上使用JQuery的最佳方法是什么?
控制器是否应该传回语义数据,并且视图(通过JQuery)使其非常/非静态(在JQuery UI的帮助下)。
我感到很困惑但是从我能收集的内容来看,假设JQuery(就MVC而言)就像客户端View引擎一样可以处理主题,隐藏控件,简单验证,弹出窗口等等吗?
答案 0 :(得分:3)
jQuery(以及一般的JavaScript)可用于增强页面的行为。我说增强,因为它基本上应该没有JavaScript。大约2%的用户没有启用JavaScript。
CSS应该用于增强页面的演示文稿(或样式)。
HTML本身实际上是原始数据的向量,它也提供了语义上下文。例如,p
标记中的数据表示该数据是段落。浏览器为HTML元素定义了CSS,因此默认情况下,具有语义上下文的原始数据看起来很模糊。
因此,关于“假设JQuery(就MVC而言)就像客户端View引擎一样可以处理主题,隐藏控件,简单验证,弹出窗口等等吗?”:
主题应该使用CSS来完成,因为它是演示文稿。你从jQuery UI库得到的主题只是给你一些CSS,这很好。
根据事件,弹出窗口和验证隐藏/显示内容应该在服务器端完成,但JavaScript也可以以及用于增强行为体验。
答案 1 :(得分:1)
就像你说的那样,控制器应该将数据传递给应该使用HTML呈现并使用CSS构建的视图。
然后,您可以使用jQuery添加验证/动态效果/ ajax等。
答案 2 :(得分:1)
我认为你应该看到Javascript更像是一个模拟内容的插件。例如:
你有一个服务器端验证,但你不想一直重新加载整个页面,然后javascript很好,但它是一个插件,因为当你没有服务器端安全性时,有人没有打开javascript,或者根本没有它,会轻易绕过你的安全。
在这种情况下,Jquery是让这些任务更容易实现。
我知道在ASP.net中隐藏控件和表单提交是标准的javascript。但这样做并不好。
在MVC中实现它非常简单,因为您只需要将它放在脚本映射中,然后使用cshtml页面中的方法加载它。
有关如何为很多浏览器构建网页的详细信息,我建议您在逐步增强后进行搜索。