最近在学习别人重写Url的代码,有个地方我自己动手怎么都报错,忘高手指点。
问题:
建立一个Web项目,一个类库ActionlessForm项目,再类库中新建一个类ActionlessForm,类ActionlessForm的作用就是在绘制From时候把Action去掉:代码如下
namespace ActionlessForm
{
    public class ActionlessForm:System.Web.UI.HtmlControls.HtmlForm    
    {
        protected override void RenderAttributes(HtmlTextWriter writer)
        {
            // 绘制表单名字
            writer.WriteAttribute("name", this.Name);
            base.Attributes.Remove("name");            // 绘制表单的方法
            writer.WriteAttribute("method", this.Method);
            base.Attributes.Remove("method");            // 移除action
            base.Attributes.Remove("action");          
            this.Attributes.Render(writer);            if (base.ID != null)
                writer.WriteAttribute("id", base.ClientID);
        }
    }
}
在web项目中引用类库项目,添加一个aspx文件,手动添加:
<%@ Register TagPrefix="skm" Namespace="ActionlessForm" Assembly="ActionlessForm" %>并且把默认生成的Form换成
<skm:Form id="form1" runat="server" onsubmit="alert('foo');" action="test">
.....
</skm:Form>运行时候错误为:
Parser Error Message: Unknown server tag 'skm:Form'.
不知道我的那个步骤出错了?ps:如果实现自己实现的Form,那么全部手动的修改代码把IDE生成的方式全部转化为自己的方式,如<skm:Form i....》
再添加声明:
<%@ Register TagPrefix="skm" Namespace="ActionlessForm" Assembly="ActionlessForm" %>
这样的方式不是很痛苦?有没有可以设置IDE的地方使更为方便呢?