JQuery是否比WebForms更适合ASP.NET MVC,或者它无关紧要?

时间:2009-12-10 22:01:08

标签: asp.net asp.net-mvc webforms

JQuery是否比WebForms更适合MVC,或者无关紧要? 我打算大量使用JQuery。

7 个答案:

答案 0 :(得分:5)

我还没有看到它提到过,但是关于JQuery的最大区别在于.Net 3.5 WebForms及以下版本对控件的ClientID几乎无法控制,这使得使用JQuery变得更加困难。

MVC(和.Net 4.0)允许您控制您的ID字段,以便使用JQuery更好地运行元素

另一个很大的区别是,当使用UpdatePanels和WebForms时,JQuery变得更加复杂。或者,MVC不支持UpdatePanels,它会强制您通过JQuery执行所有AJAX回发。这使得您的代码更容易理解,并且使用JQuery感觉更自然

答案 1 :(得分:3)

它更适合MVC,因为该框架允许更严格地控​​制生成的HTML,这允许您为dom元素提供真实,干净和自定义的ID。而不是ASP.Net给你的自动。这本身也提供了性能改进,因为jQuery通过ID而不是类来查找元素要快得多。

使用MVC,您可以更轻松地使用AJAX,因为MVC(控制器操作,休息路径)的整个设置更适合jQuery。您可以通过URL调用操作,该操作可以设计为响应GET请求,POST请求或两者!所有这些都内置在框架中。 MVC控制器动作也可以返回更适合jQuery的数据,内置JSONResult和JSON帮助器对象。

最后,重点介绍jQuery与MVC的兼容性。默认情况下,jQuery库包含在MVC中:)如果你计划大量使用jQuery然后使用MVC,那就没有竞争了。

关键是,通过使用WebForms,您可以让WebForms对呈现的HTML和DOM进行大量控制。你使用jQuery的次数越多,你就越需要完全控制它们,否则它会变得越来越困难。

答案 2 :(得分:2)

WebForms服务器控件是动态分配的ID,例如:

ctl00_contentSection_ctl03_Product_MainImage

这可能会使它们从jQuery引用变得棘手,你最终不得不做这样的事情,使用一种'String.EndsWith()'语法来查找元素:

$('img[id$=MainImage]')

我发现jQuery在MVC中运行得更顺畅,因为ID总是可以预测的。但是,这不会是ASP.NET 4.0中的问题,因为新的Control.ClientIDMode属性允许您强制使用静态ID。

答案 3 :(得分:1)

这取决于你在做什么。我使用了jQuery,结果非常相似。如果你在WebForms中使用了很多服务器控件,那么根据你修改的内容,jQuery会变得有点棘手。但是,如果您只使用几个容器元素和硬代码/动态编码HTML的其余部分,则可以控制元素的命名。此外,如果您不想按ID查找内容,您可以随时按类找到它们,WebForms不会破坏它们。

当然,你控制MVC的所有输出,所以如果你不想处理任何这些,你可以尝试MVC。要知道,如果你没有任何MVC经验,那么它的学习曲线相当可观。

答案 4 :(得分:1)

我在网页表格中使用了jQuery,但问题很少。是的,ids的重复需要一些习惯,但控件的.clientID属性将是你的朋友。

如果你主要提供内容或信息,我会根据你的网络应用程序的性质做出webforms或MVC的决定,比如我会选择MVC路线,但是如果你的应用程序围绕多种形式我会低头webforms路径。

答案 5 :(得分:0)

jQuery可以在任何需要javascript的地方使用,我想说它更适合在.net MVC中使用它,但这只是因为我喜欢你可以更容易地与ajax和MVC中的诸如此类的交互方式。

如果你在选择.net MVC和网络表单之间的交叉路上,我真的,真的,真的建议你采用MVC路线。

答案 6 :(得分:0)

jQuery适用于HTML操作,ASP.NET MVC可以让您更好地控制输出的HTML,这也是它与MVC一起使用jQuery的原因。

虽然在ASP.NET MVC中实现jQuery可能更容易,但你仍然可以使用ASP.NET WebForms(等待.NET 4)实现这一点,但是,在使用ASP时可能需要解决一些问题。 .NET WebForms。

我对WebForms和jQuery没有任何经验,但如果你环顾四周,你应该能够找到一些例子。

以下是一些:

http://randomactsofcoding.blogspot.com/2008/11/starting-with-jquery-using-jquery-with.html

http://blogger.forgottenskies.com/?p=459