我需要你的建议。我正在编写一个应用程序ASP.NET MVC + jQuery + jQuery UI,它工作得很好,但页面中有很多jQuery,就像10年前的javascript一样(除了jquery更容易)。在一个视图(不是全部)中,我有大约50%的HTML(TextBoxFor和其他....)和50%的jQuery。
你有同样的感觉吗?我做错了什么?谢谢,
答案 0 :(得分:2)
是的,但主要是因为今天的网站比10年前更加互动,使用AJAX等。
如果你想要一个动态界面,那么客户端代码就没有了。 WebForms风格(使用ASP.NET AJAX)抽象了很多,但是在灵活性和性能方面付出了代价(而且还有一堆服务器端代码混乱)。
我喜欢MVC的原因之一是它迫使开发人员清楚地思考他们在服务器端和客户端分别做了什么。
如果您在修改MVC视图时遇到问题,请考虑将脚本放在单独的包含文件中。但是,据我所知,你的脚本通常必须在View中,因为它有一堆带有模型引用的内联MVC代码,例如: $.ajax({url: '<%: Url.Action(Model.DeleteCalendarPageName) %>'});
或者,如果您在页面上有很多功能,请将它们分组到单独的脚本块中,这样您就可以使用VS大纲来打开和关闭它们,例如。
<script id="scriptStartupCode" type="text/javascript">
...
</script>
<script id="scriptBasketFunctions" type="text/javascript">
...
</script>
<script id="scriptAjaxFunctions" type="text/javascript">
...
</script>
答案 1 :(得分:1)
您不需要jQuery来实现MVC应用程序。 jQuery的数量与你需要做的事情有关,所以如果你有很多JavaScript功能,它就会存在。我编写了MVC应用程序,它们有很多JavaScript / jQuery,而且几乎为零。
答案 2 :(得分:0)
将您的Javascript保存在单独的文件中,并从您的标记中引用它。在这个时代,没有理由在你的标记中正确使用任何Javascript文件。如果您需要设置事件,可以使用css选择器。
标记有很多与之相关的Javascript没有任何内在错误。如果您需要它,您需要它。但是,有一些方法可以保持标记的可维护性。分离问题应该是你的第一步。
答案 3 :(得分:0)
如果您编写常用的页面回发应用程序,则不需要编写大量的Javascript。但是现在浏览器的发展完全是为了创建更具交互性和更好体验的应用程序,javascript是他们的语言,因此我们必须编写更多内容。但正如所说我们不需要,如果我们想让应用程序像10年前的应用程序那样工作。
答案 4 :(得分:0)
如果您使用大量JavaScript来实现Google的Gmail或其他类似网站提供的互动级别,那么您没有做错任何事。高交互性是人们现在所期待的。与我几年前制作的应用程序相比,我最近的经典ASP和MVC应用程序使用了更多的JavaScript。在过去,必须编写特定于IE5或Netscape的自定义JavaScript是一件苦差事。今天,所有浏览器的JavaScript引擎都更快,jQuery使编写JS变得更容易。
如果要保持视图干净,请从视图中提取所有JavaScript并将它们存储在.js文件中。我通常创建一个JS函数,如“ LoadMyPage(var1,var2)”,它初始化所有html元素的点击事件(使用jQuery)和任何其他JavaScript的东西。然后,我要做的就是在我的视图中添加“ <script type="text/JavaScript">$(function () {LoadMyPage('var1', 'var2');});</script>
”。那一行可能会调用一个页面值JavaScript代码。我的JavaScript代码中需要的任何服务器端生成的参数值都将作为参数传递,在本例中为“var1”和“var2”。