Implement MVC mode in ASP.NET (2)

zhaozj2021-02-16  64

Implement Model-View-Controller mode in ASP.NET (2)

The MVC mode describes this implementation is a passive implementation mechanism, and the ASP.NET acts as the role of the controller in the execution, but the programmer must add the specific event processing method to the event's response function. As in this example, the controller calls the Page_Load function before the page is loaded and executes the code when the user clicks on the Submit button and executes.

This type of implementation is very straightforward, and it can be a good method when the application is small and not modified often, but if you appear in some cases, you may Start considering modifying this implementation:

Make the programmed work parallel and reduce the likelihood of this result. In order to increase the parallelism of the work, improve efficiency, you may want to write different people to write code and model code and try to reduce the likelihood of this work mode. For example: When all the code is in a file, then a programmer may inadvertently modify the code accessed inadvertent when changing the DataGrid display format. This error is difficult to discover until the page is compiled, and it will appear. .

Reuse your data access code in other pages. In this single file implementation, in addition to copying code, there is no other method to be reused. Copy code is difficult to be maintained, because once the code changes, you must modify all pages.

In order to avoid the occurrence of these conditions, ASP.NET introduces a code-behind mechanism.

Reconstructing with code separation mechanism

The code separation mechanism in Microsoft Visual Studio .NET makes the code from the code layer and the code of the model and the code of the controller can be easily separated. Each ASP.NET page has a mechanism that enables the method to be called in a class that is separated from it. This way is very convenient, and can also use some other features in Visual Studio .NET to complete development work. For example, when you use the code separation mechanism to develop your page, you can use the IntelliSense Technology to display a list of available methods to be programmed. The intelligent perception technology cannot be used in the .aspx page.

The following example is the implementation of the above example utilizes the code separation mechanism.

View part:

The code of the view layer is now implemented in a separate file. Solution.aspx:

<% @ Page language = "c #" codebehind = "soliion.aspx.cs"

Autoeventwireup = "false" inherits = "solution"%>

Solution </ Title></p> <p></ hEAD></p> <p><body></p> <p><form id = "solution" method = "post" runat = "server"></p> <p><h3> Recordings </ h3></p> <p>SELECT A Recording: <br/></p> <p><ask: DropDownList ID = "RecordingSelect" runat = "server" /></p> <p><ask: button id = "submit" runat = "server" text = "submit"</p> <p>EnableViewState = "false" /> <p /></p> <p><ask: DataGrid ID = "MyDataGrid" runat = "server" width = "700"</p> <p>Backcolor = "# ccccff" bordercolor = "black" showfooter = "false"</p> <p>Cellpadding = "3" cellspacing = "0" font-name = "verdana" font-size = "</p> <p>8PT</p> <p>"</p> <p>Headerstyle-backcolor = "# aaaadd" enableViewState = "false" /></p> <p></ form></p> <p></ body></p> <p></ html></p> <p>Most of the code is the same as the code of the previous solution. The main difference is the first line:</p> <p><% @ Page language = "c #" codebehind = "soliion.aspx.cs"</p> <p>Autoeventwireup = "false" inherits = "solution"%></p> <p>This line tells the ASP.NET execution environment, and the specific implementation mechanism of this page is in a separate class. Because this page is independent, this page does not need to do any changes if the code of data accesses changes. Similarly, some designers can also change this page of the page without causing an error in any data access.</p></div><div class="text-center mt-3 text-grey"> 转载请注明原文地址:https://www.9cbs.com/read-25077.html</div><div class="plugin d-flex justify-content-center mt-3"></div><hr><div class="row"><div class="col-lg-12 text-muted mt-2"><i class="icon-tags mr-2"></i><span class="badge border border-secondary mr-2"><h2 class="h6 mb-0 small"><a class="text-secondary" href="tag-2.html">9cbs</a></h2></span></div></div></div></div><div class="card card-postlist border-white shadow"><div class="card-body"><div class="card-title"><div class="d-flex justify-content-between"><div><b>New Post</b>(<span class="posts">0</span>) </div><div></div></div></div><ul class="postlist list-unstyled"> </ul></div></div><div class="d-none threadlist"><input type="checkbox" name="modtid" value="25077" checked /></div></div></div></div></div><footer class="text-muted small bg-dark py-4 mt-3" id="footer"><div class="container"><div class="row"><div class="col">CopyRight © 2020 All Rights Reserved </div><div class="col text-right">Processed: <b>0.043</b>, SQL: <b>9</b></div></div></div></footer><script src="./lang/en-us/lang.js?2.2.0"></script><script src="view/js/jquery.min.js?2.2.0"></script><script src="view/js/popper.min.js?2.2.0"></script><script src="view/js/bootstrap.min.js?2.2.0"></script><script src="view/js/xiuno.js?2.2.0"></script><script src="view/js/bootstrap-plugin.js?2.2.0"></script><script src="view/js/async.min.js?2.2.0"></script><script src="view/js/form.js?2.2.0"></script><script> var debug = DEBUG = 0; var url_rewrite_on = 1; var url_path = './'; var forumarr = {"1":"Tech"}; var fid = 1; var uid = 0; var gid = 0; xn.options.water_image_url = 'view/img/water-small.png'; </script><script src="view/js/wellcms.js?2.2.0"></script><a class="scroll-to-top rounded" href="javascript:void(0);"><i class="icon-angle-up"></i></a><a class="scroll-to-bottom rounded" href="javascript:void(0);" style="display: inline;"><i class="icon-angle-down"></i></a></body></html><script> var forum_url = 'list-1.html'; var safe_token = 'uRgzZSydOeLkO_2FcVVlPirM_2BZMNZFJnqGd1BlutWEYF6PNhfXE5L5VNhCWo1SFBKytNIpfXzlUDRulKTzlKGr3Q_3D_3D'; var body = $('body'); body.on('submit', '#form', function() { var jthis = $(this); var jsubmit = jthis.find('#submit'); jthis.reset(); jsubmit.button('loading'); var postdata = jthis.serializeObject(); $.xpost(jthis.attr('action'), postdata, function(code, message) { if(code == 0) { location.reload(); } else { $.alert(message); jsubmit.button('reset'); } }); return false; }); function resize_image() { var jmessagelist = $('div.message'); var first_width = jmessagelist.width(); jmessagelist.each(function() { var jdiv = $(this); var maxwidth = jdiv.attr('isfirst') ? first_width : jdiv.width(); var jmessage_width = Math.min(jdiv.width(), maxwidth); jdiv.find('img, embed, iframe, video').each(function() { var jimg = $(this); var img_width = this.org_width; var img_height = this.org_height; if(!img_width) { var img_width = jimg.attr('width'); var img_height = jimg.attr('height'); this.org_width = img_width; this.org_height = img_height; } if(img_width > jmessage_width) { if(this.tagName == 'IMG') { jimg.width(jmessage_width); jimg.css('height', 'auto'); jimg.css('cursor', 'pointer'); jimg.on('click', function() { }); } else { jimg.width(jmessage_width); var height = (img_height / img_width) * jimg.width(); jimg.height(height); } } }); }); } function resize_table() { $('div.message').each(function() { var jdiv = $(this); jdiv.find('table').addClass('table').wrap('<div class="table-responsive"></div>'); }); } $(function() { resize_image(); resize_table(); $(window).on('resize', resize_image); }); var jmessage = $('#message'); jmessage.on('focus', function() {if(jmessage.t) { clearTimeout(jmessage.t); jmessage.t = null; } jmessage.css('height', '6rem'); }); jmessage.on('blur', function() {jmessage.t = setTimeout(function() { jmessage.css('height', '2.5rem');}, 1000); }); $('#nav li[data-active="fid-1"]').addClass('active'); </script>