Implement MVC mode in ASP.NET (1)

zhaozj2021-02-16  50

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

background:

When creating a web application with ASP.NET, based on the complexity of the program, the program must be split into different parts to reduce the recruitment of the code and reduce changes caused by future changes.

Implementation strategy:

To explain how to implement (MVC) models in ASP.NET - view-controller mode, and instructions to separate software into models, views, and controller roles, this is described as an example as an example. This sample program is a single page program with a drop-down box, which is the data in the database. As shown below.

When the user selects a record in the drop-down box and click the Submit button, the program searches from the database record from the database, and is displayed in the form of a list. Hereinafter, it will be implemented in three different implementations.

Single page mode

There are many ways to solve this problem in ASP.NET, and the simplest is also the most direct way is to put all the code in a file and name Solution.ASPX, and the code is as follows:

<% @ Import namespace = "system.data"%>

<% @ Import namespace = "system.data.sqlclient"%>

start </ title></p> <p><script language = "c #" runat = "server"></p> <p>Void Page_Load (Object Sender, System.EventArgs E)</p> <p>{</p> <p>String selectcmd = "select * from recording";</p> <p>SqlConnection myconnection =</p> <p>NEW SQLCONNECTION</p> <p>"Server = (local); database = recordings; trusted_connection = yes");</p> <p>Sqldataadapter mycommand = new sqldataadapter (selectcmd,</p> <p>MyConnection);</p> <p>DataSet DS = New DataSet ();</p> <p>MyCommand.Fill (DS, "Recording");</p> <p>Recordingselect.datasource = ds;</p> <p>Recordingselect.DataTextField = "Title";</p> <p>Recordingselect.datavaluefield = "id";</p> <p>Recordingselect.database ();</p> <p>}</p> <p>Void Submitbtn_Click (Object Sender, Eventargs E)</p> <p>{</p> <p>String selectcmd =</p> <p>String.Format</p> <p>"SELECT * from track where recordingId = {0} Order by id",</p> <p>(String) RecordingSelect.SelectedItem.Value;</p> <p>SqlConnection myconnection =</p> <p>NEW SQLCONNECTION</p> <p>"Server = (local); database = recordings; trusted_connection = yes");</p> <p>Sqldataadapter mycommand = new sqldataadapter (selectcmd, myconnection);</p> <p>DataSet DS = New DataSet ();</p> <p>MyCommand.fill (DS, "Track");</p> <p>MyDataGrid.dataSource = DS;</p> <p>MyDataGrid.databind ();</p> <p>}</p> <p></ script></p> <p></ hEAD></p> <p><body></p> <p><form id = "start" 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><asp: button runat = "server" text = "submit" onclick = "submitbtn_click" /></p> <p><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"</p> <p>Font-size = "</p> <p>8PT</p> <p>"Headerstyle-backcolor =" # aaaadd "</p> <p>EnableViewState = "false" /></p> <p></ form></p> <p></ body></p> <p></ html></p> <p>This implementation file contains three roles of models, views, and controllers, but does not split them into different files or classes. The view object is implemented with an HTML, with a data binding control to display data from the DataSet returned from the database. Model roles are implemented in page_load and subsmitbtn_click functions. The controller role does not have an explicit implementation, but is implicitly implemented by ASP.NET. When the program runs, when the user issues a page request, the page will update the user's selection.</p></div><div class="text-center mt-3 text-grey"> 转载请注明原文地址:https://www.9cbs.com/read-25078.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="25078" 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.037</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 = 'ax_2BiSOaf28pZKFdGR6mackQ_2F_2FmG_2FffeqC0C2rhvBzA8gJRgasZSu0nD4H4nabfVLVWDKf_2FXcvl6GBuGXXHufqg_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>