ASP.NET MVC£ºÈçºÎʵÏÖÒ»¸ö×Ô¼ºµÄModelBinder£¿
»·¾³£º
Windows 2008, VS 2008 SP1, Asp.Net Mvc RC1
------------------------------------------------------------------------------
ÉÏÎÄ£ºAsp.Net Mvc: Model Binding »úÖÆ·ÖÎö ÖУ¬ÎÒÃǼòµ¥·ÖÎöÁËAsp.Net MvcÖÐModel BindingµÄ¹ý³Ì£¬·Ç³£´Ö²Ú£¬±¾ÎĽ«Ì½Ë÷ÈçºÎʵÏÖÒ»¸ö×Ô¼ºµÄModelBinder£¬²¢½øÒ»²½Õ¹Ê¾Ç°ÎĺöÂÔµÄÈô¸Éϸ½Ú¡£
¼ÙÉ裬ÎÒÃÇÏÖÔÚÓÐÒ»¸öBookÀ࣬
ÏÖÔÚÎÒÃÇҪʵÏÖÌí¼ÓBookµÄ¹¦ÄÜ£¬Òò´Ë£¬Ð½¨Ò»¸öBookController£¬²¢ÇÒ¼ÓÈëÒ»¸öAction:
½¨Á¢ÏàÓ¦µÄView£º
Æäʵ£¬µ½ÕâÒ»²½£¬µ±ÎÒÃÇÌá½»±íµ¥µÄʱºò£¬ÔÚActionÀïÃæÒѾ¿ÉÒÔ»ñµÃBook×Ô¶¯°ó¶¨£¬Õâ¹é¹¦ÓÚÄÚ½¨µÄDefaultModelBinder¡£µ«ÊÇ£¬ÎÒÃÇ»ùÓÚijÖÖ¿¼ÂÇ£¬ÏëҪʹÓÃ×Ô¼º´´½¨µÄModelBinder¡£ÓÚÊÇ£¬ÎÒÃǽÓ×Å´´½¨Ò»¸öSimpleModelBinderÀ࣬¸ÃÀàʵÏÖÁËIModelBinder½Ó¿Ú£¨×Ô¶¨ÒåµÄModelBinder±ØÐëʵÏÖÕâ¸ö½Ó¿Ú£©¡£
IModelBinderÖ»ÓÐÒ»¸ö·½·¨BindModel()£¬Õâ¸ö·½·¨½ÓÊÜÁ½¸ö²ÎÊý£ºControllerContext, ModelBindingContext£¬Òò´Ë£¬ÎÒÃÇÔÚʵÏÖÕâ¸ö·½·¨µÄʱºò£¬±ãÐèÒªºÃºÃÀûÓÃÕâÁ½¸ö²ÎÊý°üº¬µÄÐÅÏ¢¡£
ÏÖÔÚÀ´¿´SimpleModelBinderµÄ¾ßÌåʵÏÖ£º
ÉÏÃ棬ÎÒ¾¡Á¿±ÜÃâÓ²±àÂ룬ÒòΪÎÒÏ£ÍûÕâ¸öSimpleModelBinder¾ßÓÐÒ»¶¨µÄͨÓÃÐÔ¡£´ËÍâÒ²±ÜÃâModel×Ö¶ÎÃû³Æ¸ü¸ÄµÄÁ¬Ëø·´Ó¦¡£ÕâÀÎÒÃÇͨ¹ýbindingContext.ModelTypeÀ´´´½¨Ò»¸öModelʵÀý£¬Í¨¹ýTypeDescriptorÀ´»ñÈ¡ModelµÄProperty¼¯ºÏ£¬Í¨¹ýbindingContext.ValueProviderÀ´È¡µÃRequestµÄ±íµ¥ÐÅÏ¢£¬×îºó·µ»ØÒ»¸öModelʵÀý¡£
ÕâÑù£¬ÎÒÃǵÄSimpleModelBinder¾Í´´½¨ÍêÁË¡£ÄÇô£¬ÈçºÎÈÃËü¿ªÊ¼¹¤×÷ÄØ£¿
ÓÚÊǾÍÒý³öÒ»¸öÎÊÌ⣺Asp.Net MvcÈçºÎÈ·¶¨µ±Ç°ÐèÒªÓ¦ÓÃÄĸöModelBinder£¿
´ð°¸ÊÇ£º°´ÏȺó˳Ðò£º(1)Action·½·¨ÖÐModelµÄ²ÎÊýµÄAttribute£¬(2) ModelBinders.Binders×ֵ䣬(3) ModelÀàµÄAttribute£¬(4) DefaultModelBinder
Ò²¾ÍÊÇ˵£¬ÎÒÃÇÓÐ(1)(2)(3)ÈýÖÖ·½·¨À´¸æËßAsp.Net Mvcµ±Ç°ÎÒÃÇÆÚÍûÓ¦ÓÃÄĸöModelBinderµ½ÄĸöModel¡£
(1) ÔÚActionµÄModel²ÎÊýÉϼÓAttribute:
(2) ½«SimpleModelBinderÌí¼Óµ½ModelBinders.Binders×ÖµäÖУº
(3) ÔÚBookÀඨÒåʱ¼ÓÉÏAttribute£º
ºÃÀ²£¬Èý¸ö·½·¨ÈÎÓÉÄãÑ¡Ôñ¡£
ÕâÀÎÒÃÇ´´½¨ÁËÒ»¸öºÜ¼òµ¥µÄ×Ô¶¨ÒåµÄModelBinder£¬µ«ÄãÊÇ·ñÖªµÀËüÖÁÉÙ»¹È±Ê§ÁËÒ»¸öºÜÖØÒªµÄ¹¦ÄÜ£¬¾ÍÊÇ°ó¶¨Ê±¶ÔModelµÄPropertyµÄ¹ýÂË£¬ÒòΪһֱÒÔÀ´ÎÒ¶¼°ÑBindAttributeÕâ¸ö³ÉÔ±¸øºöÊÓÁË¡£ÏÂƪ£¬ÎÒÃǾÍÀ´Ì¸Ì¸BindAttribute£¬²¢¶ÔSimpleModelBinder×öÉÔÉÔµ
Ïà¹ØÎĵµ£º
2.1 ASP.net ÈëÃÅ
¡¡¡¡Í¨³£Ì¸Ò»¸öѧ¿Æ£¬ÎÒÃÇÀÏÊÇ˵£¬ËüÈëÃźܼòµ¥µÄÂASP.netÒ²ÊÇ¡£ASP.netÌá³öÒ»¸ö¸ÅÄ¾ÍÊÇÈÏΪWEBÒ³Ã棬ҲÊÇÒ»¸ö´°Ì壬ËùÒÔ£¬Ñ§Ï°¹ýÃæÏò¶ÔÏó±à³ÌµÄVB VC BC DephiµÄÅóÓÑ£¬Ñ§ÆðÀ´¾Í¼òµ¥¶àÁË¡£
¡¡¡¡Ò»¸öASP.netÒ³ÃæµÄºó׺ÃûÊÇ".aspx"£¬ËùÒÔ£¬IISÔÚÄã°²×°ÍêASP.netʱ£¬Ò²»á°ÑDefault.aspx×÷ΪÄãµÄĬÈÏ ......
¶ÏµãÐø´«µÄÔÀí
ÔÚÁ˽âHTTP¶ÏµãÐø´«µÄÔÀí֮ǰ£¬ÏÈÀ´ËµËµHTTPÐÒ飬HTTPÐÒéÊÇÒ»ÖÖ»ùÓÚtcpµÄ¼òµ¥ÐÒ飬·ÖΪÇëÇóºÍ»Ø¸´Á½ÖÖ¡£ÇëÇóÐÒéÊÇÓÉ¿Í»§»ú(ä¯ÀÀÆ÷)Ïò·þÎñÆ÷(WEB SERVER)Ìá½»ÇëÇóʱ·¢Ëͱ¨ÎĵÄÐÒé¡£»Ø¸´ÐÒéÊÇÓÉ·þÎñÆ÷(web server)£¬Ïò¿Í»§»ú(ä¯ÀÀÆ÷)»Ø¸´±¨ÎÄʱµÄÐÒé¡£ÇëÇóºÍ»Ø¸´ÐÒ鶼ÓÉÍ·ºÍÌå×é³É¡£Í·ºÍÌåÖ® ......
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Text;
using System.Collections.Generic;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using Sy ......
·Ï»°²»Ëµ£¬Ö±½Ó´úÂ벿·Ö´úÂëÕª³×ÔÍøÉÏ£¬ÔÚ´ËÏëÔ×÷Õß±íʾ¸Ðл
1¡¢·þÎñ¶Ë uploadFile.ashx
<%@ WebHandler Language="VB" Class="UploadFile" %>
Imports System
Imports System.Web
Imports System.Web.HttpServerUtility
Imports System.IO
Imports System.Web.HttpRequest
Public Class UploadFile : Impl ......
Ò»Ö±ÒÔÀ´¸½¼þÉÏ´«¶¼ÊǸöºÜÓôÃƵÄÎÊÌ⣬¸Õ¿ªÊ¼ÊÇÀûÓÃjsÌí¼Óinput file È»ºóÒ»ÆðÌá½»À´ÊµÏÖ¶àÎļþÉÏ´«£¬ÔÚʹÓÃ163ÓÊÏäµÄʱºòºÜÊÇÏÛĽËüµÄ¸½¼þÉÏ´«²¿·Ö£¨Ñ¡ÔñÍêÎļþ¾ÍÌá½»£¬¿ÉÒÔ¶à¸öÎļþÒ»ÆðÉÏ´«£¬¶øÇÒ»¹¿ÉÒÔ»ñÈ¡ÉÏ´«½ø¶È£©£¬Õâʱ¾ÍºÜÏë×Ô¼ºÒ²Ð´¸öÄÇÑùµÄ¶«Î÷³öÀ´¡£
×î½ü²ÎÕÕÍøÉϵÄһЩ×ÊÁÏ£¬³õ²½µ½´ïÁËÔ¤ÆÚÄ¿±ê£¨¿Í»§¶Ë»ñÈ¡ÉÏ ......