Kag*_*awa 9 asp.net jquery-mobile
我过去一直在开发ASP.Net,直到最近才遇到移动项目.Jquery-Mobile似乎是一个完美的框架,所以我只是潜入它.
目前我正在使用ASP.Net方法将服务器控件放在页面上,然后使用jqm来增强这些控件,使它们看起来像移动设备.我实际上做回发来收集表单数据并在代码隐藏中处理它们.为了避免整页刷新,我不得不将它们与updatepanel混合使用.不知何故,我让他们工作,但内心深处,我觉得这不是正确的方式(或有效的方式).
为了让它们正确混合起来有太多的复杂性,所以我想也许我应该避免回发并在纯AJAX请求中做其他事情?
$.ajax({
type: 'POST',
url: "/GetName",
data: "{}",
contentType: "application/json; charset=utf-8"
})
.success(function (response) {
alert(response);
});
Run Code Online (Sandbox Code Playgroud)
代码隐藏:
[WebMethod ()]
public String GetName()
{ return "Jack"; }
Run Code Online (Sandbox Code Playgroud)
问题:
这是有效的,但这是使用jQuery-Mobile网站的更好方法,还是这只是另一个糟糕的例子?
对于这种情况,UpdatePanel和回发是一个坏主意吗?(我知道他们的工作)
如果首选AJAX,我该如何在pageload上填充下拉列表(非服务器控件)?发送一个AJAX请求来填充$(document).ready()上的下拉列表对我来说似乎很愚蠢
我正在寻找的是开发移动网站的经验法则,我不想太远离应该做的事情.非常感谢您的投入.谢谢.
and*_*eer 13
asp.net Web Forms和jQuery Mobile真的不能一起工作.回发模型打破了jQuery Mobile ajax的工作方式,当你有多个页面或表单时,它会下降.特别是Web窗体需要一个<form>包装所有服务器端控件的标记,并且您不能引入其他"内部"窗体.jQuery Mobile最适合使用ajax模型和一个或多个"pages"(<div data-role="page">)以及DOM中包含的表单.更新面板最终会导致混乱.
一种方法是简单地关闭jQuery Mobile ajax加载.你可以这样做:
//note that the order of script loading here is critical.
<script src="http://code.jquery.com/jquery-1.8.2.min.js"></script>
<script>
$(document).bind(“mobileinit”, function() {
$.mobile.ajaxEnabled = false;
});
</script>
<script src="http://code.jquery.com/mobile/1.2.0/jquery.mobile-1.2.0.min.js">
</script>
Run Code Online (Sandbox Code Playgroud)
但最终,你将没有一个高效的网站.如果您的站点在本地无线网络上运行,则可能已经足够了.
我主要在Web Forms环境中工作,需要基于Web Forms的jQuery Mobile应用程序,并将5个左右的"页面"编码为单个静态html文件.然后我依靠JavaScript和jQuery ajax加载到ASMX Web服务端点.我也广泛使用了KnockoutJS,但我当然可以完全依赖JavaScript和jQuery ajax来提取数据(在我的情况下,应用程序具有报告性质,没有数据更新.)如果要保存数据,可以使用同样的技术.
更好的方法是使用asp.net MVC,它消除了强制回发模型,并允许对<form>标记放置的位置进行细粒度控制.
我正在一个更大的移动网站上工作,并使用MVC作为后端并充分利用Razor视图,但最后,我依靠客户端ajax调用所有数据和KnockoutJS几乎所有动态标记.最后,我的客户端应用程序在Web窗体和MVC之间并没有什么不同.基于MVC的控制器更易于使用ajax端点,解决方案更清晰.
一般来说,我会将两种解决方案都归结为"单页面应用程序"即SPA方法.还有其他方法可能适用于Web窗体,但在我的有限探索中,这是最好的选择.
| 归档时间: |
|
| 查看次数: |
8518 次 |
| 最近记录: |