也许头衔还不够清楚。我必须使用asp.net网络表单,这是一个要求,不能做任何事情。我希望避免服务器控件(如网格、下拉列表等)。我想在大多数动作中使用ajax,并使用前端,比如角度或击倒。我想为所有后端操作构建一个web项目。因此,视图后面的代码将是最小的,web将是核心操作处理程序。作为这个问题的答案,我需要的是建筑。这就是我计划用自然的方式制作应用程序吗?或者这是完全错误的做事方式?
发布于 2015-02-22 17:52:29
如果我正确地理解了您,您希望实现类似SPA (application)之类的东西。
你说得对,你不需要ASP.NET网络表单(这太过分了)。更好的方法是使用ASP.NET WebAPI和一些视图引擎(比如Razor)来呈现页面(如果需要的话)。
毕竟是:您写过,您必须使用ASP.NET Web表单,并且.是的,不需要查看状态和回发就可以使用asp.net web表单(您只是不使用它,或者使用它来呈现主页(索引)页面,好吗?)
更多的是,您可以在单个项目中同时使用Controller和ApiController继承者,但是您必须为您的API添加类似于此的路由(将其添加到ApiController方法中):
RouteTable.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = System.Web.Http.RouteParameter.Optional }
);发布于 2016-12-09 16:24:23
没有视图状态和回调,绝对可以使用asp.net。为此,我创建了一个大型数据库应用程序。我的下拉列表、链接等等不会导致回发到服务器(通过在所有链接上返回" false“,确保”自动回发“设置为false等方式完成)。您将不会从gridView控件中获得太多(如果有的话)功能,因为分页的功能会返回到服务器。您必须编写自己的分页/滚动,但可以在WO上找到相关示例。
我确实广泛地使用了后面的代码来在初始加载时填充表单。对于填充数据、格式化文本框、分配样式等,"load“和"init”事件工作得很好,我喜欢在后面的代码中使用"this.textbox“。通过这种方式,我可以将HTML保持在页面上非常有限--后面的代码会对页面进行所有繁重的格式化。
我在前端使用JQuery和JQuery UI,用于对话框、选项卡等。我选择它是因为它重量轻、使用方便,而且无处不在。我们的许多数据库更新都是单击网格中的元素,弹出并阻塞对话框,使用ajax检索数据,填充框,解锁对话框。
经过大量的尝试和错误之后,我已经消除了所有我不喜欢的webforms部分(主要是视图状态和完整回发事件模型),并且保留了我非常喜欢的部分(管理加载页面的代码)。
最后-我肯定不喜欢更新面板。他们的承诺是伟大的--但要让他们在没有愚蠢的工件的情况下工作是一个挑战,而且他们不能很好地与jQuery UI集成。由于要限制/消除回发/视图状态,所以无论如何都不会使用它们。
https://stackoverflow.com/questions/28659622
复制相似问题