是否可以在没有视图状态和回发的情况下使用asp.net web表单
Is it possible to use asp.net web forms without viewstate and postbacks
也许标题不够清晰。我必须使用asp.net网页表单——这是一项要求,对此我无能为力。我想避免服务器控制(如网格、下拉列表等)我想在大多数操作中使用ajax,并使用前端,如angular或knockout。我想为所有后端操作构建一个webapi项目。因此,视图背后的代码将是最小的,web api将是核心操作处理程序。作为这个问题的答案,我需要的都是关于架构的。这就是我计划用自然的方式制作应用程序的原因吗?或者这是完全错误的做事方式?
如果我理解正确,您希望实现类似SPA的东西(https://en.wikipedia.org/wiki/Single-page_application)。
你说得对,你不需要ASP.NET Web窗体(这太过分了)。更好的方法是使用ASP.NET WebAPI和一些视图引擎(如Razor)来渲染页面(如果需要的话)。
毕竟:您写道,必须使用ASP.NET Web窗体,并且。。。是的,可以在没有视图状态和回发的情况下使用asp.net web表单(您只是不使用它,或者使用它来呈现主页(索引),好吗?)。
更重要的是,您可以在单个项目中同时使用Controller和ApiController继承器,但您必须像这样为您的API添加路由(将其添加到Application_Start方法中):
RouteTable.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = System.Web.Http.RouteParameter.Optional }
);
您绝对可以在没有视图状态和回调的情况下使用asp.net。为此,我创建了一个大型数据库应用程序。我的下拉列表、链接等都不会导致回发到服务器(通过在所有链接上返回"false",确保"自动回发"设置为false等来完成)。你不会从gridView控件中获得太多(如果有的话)功能,因为对于分页,它会返回到服务器。你必须自己写页码/滚动,但你可以在WO上找到这样的例子。
我确实广泛使用了在初始加载时填写表单的代码。对于填充数据、格式化文本框、分配样式等,"load"answers"init"事件运行良好,我喜欢在代码后面使用"this.textbox"。通过这种方式,我可以使页面上的HTML非常有限——后面的代码完成了页面格式化的所有繁重工作。
我在对话框、选项卡等的前端使用JQuery和JQuery UI。我选择它是因为它重量轻、易于使用且无处不在。我们的许多数据库更新都是点击网格中的一个元素,弹出并阻止一个对话框,用ajax检索数据,填充框,取消阻止对话框。
经过大量的尝试和错误,我已经消除了网络表单中我不喜欢的所有部分(主要是视图状态和完整的post-back事件模型),并保留了我非常喜欢的部分(用于管理加载页面的代码)。
最后,我确实不喜欢更新面板。它们的前景很好,但要让它们在没有愚蠢工件的情况下工作是一个挑战,而且它们不能很好地与jQueryUI集成。由于要限制/消除回发/查看状态,因此无论如何都不会使用它们。
- 在不刷新整个网格的情况下,向Asp.net网格视图添加新行
- 如何在不使用javascript和asp.net选择dropdownlist值的情况下显示验证
- 是否可以在没有视图状态和回发的情况下使用asp.net web表单
- 在asp.net mvc 3中,如何在不刷新页面的情况下从部分视图获取值到父视图
- 如何在没有代码隐藏访问权限的情况下将自定义 HTML 属性添加到 ASP.NET 标签
- 如何让asp:Panel在没有AutoPostBack的情况下与asp:RadioButtonList正常工作
- ASP .NET MVC 在背景上调用函数,在没有 JS 的情况下调整字体大小
- 将 Telerik ASP.NET Ajax RadGrid 加载到模态弹出窗口中,并在不刷新页面的情况下通过 Ajax
- 如何在不干扰和烦恼页面的情况下与 asp.net 中的数据库进行交互
- Jquery 序列化 :尝试在不提交表单的情况下将表单状态传递给 ASP.NET MVC 控制器
- ASP.Net MVC-如何在没有Bundles的情况下最小化JavaScript(内联/外部文件)
- 在没有ASP.NET的情况下从JavaScript/HTML访问C#代码
- 如何在Asp.Net中不按CTRL键的情况下在ListBox中多选项目
- 如何在没有代码隐藏的情况下在ASP.NET中调用C#class.cs
- 在仍然使用Model的情况下发布两种数据.在ASP中有效.NET Core 1.0
- ASP.. NET MVC: Razor -如何在不向浏览器发送大量空白的情况下保持良好的缩进代码
- ASP(经典)/IIIS 7.5-您可以在不刷新会话的情况下检查会话是否超时吗
- 如何在没有Form或Beging Form标记的情况下,在asp.net MVC 5中使用AJAX上传带有所有输入文本框
- 在不回发的情况下更新asp.net更新面板
- 为javascript数组元素赋值在循环时不起作用(classic.asp),但在没有循环的情况下也能起作用,为什么