精华内容
下载资源
问答
  • .NET 2.0框架ASP.NET增加了几个特殊目录,其中有一个最容易被忽视的App_Browsers目录,这里是用来存放浏览器定义文件的,相关说明可以参考MSDN:http://msdn2.microsoft.com/zh-cn/library/ms228122(VS.80).aspx在...
    .NET 2.0框架给ASP.NET增加了几个特殊目录,其中有一个最容易被忽视的App_Browsers目录,这里是用来存放浏览器定义文件的,相关说明可以参考MSDN:http://msdn2.microsoft.com/zh-cn/library/ms228122(VS.80).aspx

    在网站根目录创建App_Browsers目录,在里面建立一个新的文件起名 RewriteForm.browser ,其内容如下:

    <browsers>
        
    <browser refID="Default">
            
    <controlAdapters>
                
    <adapter controlType="System.Web.UI.HtmlControls.HtmlForm"
                    adapterType
    ="Kuang.HtmlFormAdapter" />
            
    </controlAdapters>
        
    </browser>
    </browsers>

    其中,browser节的 refID="Default" 属性是表示扩展系统原有的Default.browser文件(位于 %windir%\Microsoft.NET\Framework\v2.0.50727\CONFIG\Browsers ),Default.browser 是全部浏览器定义的根,具体细节请参考MSDN说明。

    Adapter的意思是适配器,在.NET领域表示在两个对象之间进行协调的对象,例如ADO.NET中众所周知的SqlDataAdapter类就是在SqlCommand和DataSet之间协调的Adapter。

    ASP.NET 2.0带来了ControlAdapter的概念,意思是位于RewriteForm.browser 文件中,通过 <adapter controlType="System.Web.UI.HtmlControls.HtmlForm" adapterType="Kuang.HtmlFormAdapter" /> 这行,我指定了要重载HtmlForm类,并且提供了我自定义的ControlAdapter类的类型 Kuang.HtmlFormAdapter。

    下面这个是自定义的ControlAdapter类的代码:

    using System;
    using System.Web.UI.Adapters;

    namespace Kuang {
        
    public class HtmlFormAdapter : ControlAdapter {
            
    protected override void Render(System.Web.UI.HtmlTextWriter writer) {
                
    base.Render(new FormRewriteTextWriter(writer));
            }
        }
    }

    和重载Page类的手段一样,这段代码也引用了一个自定义的 HtmlTextWriter 类,以下是该类的实现代码,我自己做了一定的修改:

    using System;
    using System.IO;
    using System.Web;
    using System.Web.UI;

    namespace Kuang {
        
    public class FormRewriteTextWriter : HtmlTextWriter {
            
    public FormRewriteTextWriter(TextWriter writer) : base(writer) {
                
    if(writer is HtmlTextWriter)
                    
    this.InnerWriter = (writer as HtmlTextWriter).InnerWriter;
                
    else
                    
    this.InnerWriter = writer;
            }

            
    public override void WriteAttribute(string name, string value, bool fEncode) {
                HttpContext context 
    = HttpContext.Current;
                
    object rewroteAlready = context.Items["FormActionRewroteAlready"];
                
    if(name == "action" && rewroteAlready == null) {
                    value 
    = context.Request.RawUrl;
                    context.Items[
    "FormActionRewroteAlready"= new object();
                }
                
    base.WriteAttribute(name, value, fEncode);
            }
        }
    }

    把以上两段代码放入到网站的App_Code目录下,就大功告成了,这个方法一个特别的优点是,不需要改动原来网站的任何代码,连 web.config 都不用改。
    展开全文
  • jsp中table增加删除、修改

    千次阅读 2017-05-11 17:40:38
    <td align="center" >//居中 删除</a>  //空格修改 新建一个updata jsp文件 新建表单 <form action="do_updateaction.jsp" method="post"> //注意路径,如果实在同一个
    <td align="center" >//居中
         <a href='delete.jsp '>删除</a> &nbsp//空格<a href="updata.jsp`` ">修改</a>
         </td>

    新建一个updata jsp文件
    新建表单
    <

    form action="do_updateaction.jsp" method="post">
      //注意路径,如果实在同一个页面上就要去掉本页中的basepath。
         姓名:<input type="text" /><br/>
         昵称:<input type="text" /><br/>
         电话:<input type="text" /><br/>
         手机:<input type="text" /><br/>
         <input type="submit" value="提交"/><br/>
         <input type="reset" value="重置"/><br/>
       </form>
    展开全文
  • Form标记作用 为MVC控制器的Action或命名路由生成 Form标签和...asp-route- 属性可以路由增加参数 替代Html.BeginForm 和Html.BeginRouteForm <form asp-controller="Demo" asp-action="Register" method="pos

    Form标记作用

    • 为MVC控制器的Action或命名路由生成 Form标签和action属性
    • 生成一个隐藏的Request Verification Token来防止跨域请求(需要Action增加[ValidateAntiForgeryToken] 特性)
    • asp-route- 属性可以给路由增加参数
    • 替代Html.BeginForm 和Html.BeginRouteForm
    <form asp-controller="Demo" asp-action="Register" method="post">
        <!-- Input and Submit elements -->
    </form>
    

    生成Html:

    <form method="post" action="/Demo/Register">
        <!-- Input and Submit elements -->
        <input name="__RequestVerificationToken" type="hidden" value="<removed for brevity>">
    </form>
    

    使用命名路由

    <form asp-route="register" method="post">
        <!-- Input and Submit elements -->
    </form>
    

    asp-route-returnurl 属性用来验证用户如果没有被授权则跳转到指定页

    Form Atcion Tag Helper

    用于<button …> 或 <input type=“image”…> 生成formaction属性 A标签的控制链接的属性都支持

    属性 描述
    asp-controller controller的名称
    asp-action action 方法的名称.
    asp-area area的名称.
    asp-page Razor page的名称.
    asp-page-handler Razor page handler的名称.
    asp-route route名称.
    asp-route-{value} route值, asp-route-id=“1234”.
    asp-all-route-data 所有的route值.
    asp-fragment The URL fragment.

    提交到控制器的例子

    <form method="post">
        <button asp-controller="Home" asp-action="Index">Click Me</button>
        <input type="image" src="..." alt="Or Click Me" asp-controller="Home" 
                                    asp-action="Index">
    </form>
    

    生成的Html:

    <form method="post">
        <button formaction="/Home">Click Me</button>
        <input type="image" src="..." alt="Or Click Me" formaction="/Home">
    </form>
    

    提交到Page的例子:

    <form method="post">
        <button asp-page="About">Click Me</button>
        <input type="image" src="..." alt="Or Click Me" asp-page="About">
    </form>
    

    生成的Html

    <form method="post">
        <button formaction="/About">Click Me</button>
        <input type="image" src="..." alt="Or Click Me" formaction="/About">
    </form>
    

    提交到route的例子

    控制器:

    public class HomeController : Controller
    {
        [Route("/Home/Test", Name = "Custom")]
        public string Test()
        {
            return "This is the test page";
        }
    }
    
    <form method="post">
        <button asp-route="Custom">Click Me</button>
        <input type="image" src="..." alt="Or Click Me" asp-route="Custom">
    </form>
    

    生成的Html:

    <form method="post">
        <button formaction="/Home/Test">Click Me</button>
        <input type="image" src="..." alt="Or Click Me" formaction="/Home/Test">
    </form>
    

    Input Tag Helper

    Input TagHelper 在razor 视图中将 元素绑定到模型的属性上。
    语法:

    <input asp-for="<Expression Name>">
    

    作用:

    • 根据asp-for的表达式 生成id和name属性 asp-for=“Property1.Property2” 等价于m => m.Property1.Property2
    • 根据属性类型和data annotation 特性来设置type属性
    • 如果type属性已经指定 ,则不会重写
    • 由data annotation 生成Html5 的验证属性
    • 与Html.TextBoxFor 和 Html.EditorFor 相似的功能
    • 强类型
      .net类型与html类型对应表
    .Net类型 Input 类型
    Bool type=“checkbox”
    String type=“text”
    DateTime type=“datetime-local”
    Byte type=“number”
    Int type=“number”
    Single, Double type=“number”

    data annotations 特性 与 类型对应表

    特性 input 类型
    [EmailAddress] type=“email”
    [Url] type=“url”
    [HiddenInput] type=“hidden”
    [Phone] type=“tel”
    [DataType(DataType.Password)] type=“password”
    [DataType(DataType.Date)] type=“date”
    [DataType(DataType.Time)] type=“time”

    例子:
    模型类:

    using System.ComponentModel.DataAnnotations;
    
    namespace FormsTagHelper.ViewModels
    {
        public class RegisterViewModel
        {
            [Required]
            [EmailAddress]
            [Display(Name = "Email Address")]
            public string Email { get; set; }
    
            [Required]
            [DataType(DataType.Password)]
            public string Password { get; set; }
        }
    }
    
    @model RegisterViewModel
    
    <form asp-controller="Demo" asp-action="RegisterInput" method="post">
        Email:  <input asp-for="Email" /> <br />
        Password: <input asp-for="Password" /><br />
        <button type="submit">Register</button>
    </form>
    

    生成的Html

    <form method="post" action="/Demo/RegisterInput">
          Email:
          <input type="email" data-val="true"
                 data-val-email="The Email Address field is not a valid email address."
                 data-val-required="The Email Address field is required."
                 id="Email" name="Email" value=""><br>
          Password:
          <input type="password" data-val="true"
                 data-val-required="The Password field is required."
                 id="Password" name="Password"><br>
          <button type="submit">Register</button>
          <input name="__RequestVerificationToken" type="hidden" value="<removed for brevity>">
       </form>
    

    验证使用Html5 和jQuery

    Html Helper 和Input tag helper 的区别

    Html.TextBox, Html.TextBoxFor, Html.Editor 和Html.EditorFor 与 input tag helper 的功能相似,
    Input tag helper 自动设置属性,而Html.TextBox, Html.TextBoxFor 使用集合,复杂对对象和模板。
    Input Tag Helper, Html.EditorFor 和Html.TextBoxFor 都是强类型
    而Html.TextBox and Html.Editor 则不是(他们用表达式名字)

    如果迭代集合中的各项 需要使用@

    <input asp-for="@Model[i].IsDone" />
    

    Textarea Tag Helper

    与Input Tag Helper相似

    Label Tag Helper

    asp-for 取的是Display特性上的名字

    using System.ComponentModel.DataAnnotations;
    
    namespace FormsTagHelper.ViewModels
    {
        public class SimpleViewModel
        {
            [Required]
            [EmailAddress]
            [Display(Name = "Email Address")]
            public string Email { get; set; }
        }
    }
    
    @model SimpleViewModel
    
    <form asp-controller="Demo" asp-action="RegisterLabel" method="post">
        <label asp-for="Email"></label>
        <input asp-for="Email" /> <br />
    </form>
    

    生成的Html:

    <label for="Email">Email Address</label>
    

    Validation Tag Helpers

    有两种验证Tag Helper

    • 单一验证
    • 汇总验证
      作用:
    • 在指定位置生成span标记,并添加data-valmsg-for="property" ,当客户端产生验证错误时,jQuery显示错误信息
    • 验证也可以在服务器端执行
    • 与Html.ValidationMessageFor功能相同
      验证消息Tag Helper 与 span元素的asp-validation-for 一起使用
      如:
    <span asp-validation-for="Email"></span>
    

    生成Html:

    <span class="field-validation-valid"
      data-valmsg-for="Email"
      data-valmsg-replace="true"></span>
    

    注:必须引入jQuery

    Validation Summary Tag Helper

    元素上添加 asp-validation-summary属性
    asp-validation-summary的值

    显示的验证信息
    ValidationSummary.All 属性和模型
    ValidationSummary.ModelOnly 模型
    ValidationSummary.None None

    @model RegisterViewModel
    
    <form asp-controller="Demo" asp-action="RegisterValidation" method="post">
        <div asp-validation-summary="ModelOnly"></div>
        Email:  <input asp-for="Email" /> <br />
        <span asp-validation-for="Email"></span><br />
        Password: <input asp-for="Password" /><br />
        <span asp-validation-for="Password"></span><br />
        <button type="submit">Register</button>
    </form>
    

    Select Tag Helper

    用于生成select 并且将option关联到模型的属性中
    与Html.DropDownListFor 和Html.ListBoxFor功能相似
    用法

    <select asp-for="Country" asp-items="Model.Countries"></select>
    

    asp-for 属性是一个特例,它不需要Model前缀,而其它的tag helper需要,如asp-items

    枚举绑定

    用select将下拉列表绑定到枚举值上会很方便
    使用GetEnumSelectList方法为枚举值生成一个SelectList

    @model CountryEnumViewModel
    
    <form asp-controller="Home" asp-action="IndexEnum" method="post">
        <select asp-for="EnumCountry" 
                asp-items="Html.GetEnumSelectList<CountryEnum>()">
        </select> 
        <br /><button type="submit">Register</button>
    </form>
    

    生成的Html:

    <form method="post" action="/Home/IndexEnum">
             <select data-val="true" data-val-required="The EnumCountry field is required."
                     id="EnumCountry" name="EnumCountry">
                 <option value="0">United Mexican States</option>
                 <option value="1">United States of America</option>
                 <option value="2">Canada</option>
                 <option value="3">France</option>
                 <option value="4">Germany</option>
                 <option selected="selected" value="5">Spain</option>
             </select>
             <br /><button type="submit">Register</button>
             <input name="__RequestVerificationToken" type="hidden" value="<removed for brevity>">
        </form>
    

    选项分组

    当模型包括一个以上的SelectListGroup 对象时,生成的Html会包含

    如下:分成两组 North America" 和"Europe"

    public class CountryViewModelGroup
    {
        public CountryViewModelGroup()
        {
            var NorthAmericaGroup = new SelectListGroup { Name = "North America" };
            var EuropeGroup = new SelectListGroup { Name = "Europe" };
    
            Countries = new List<SelectListItem>
            {
                new SelectListItem
                {
                    Value = "MEX",
                    Text = "Mexico",
                    Group = NorthAmericaGroup
                },
                new SelectListItem
                {
                    Value = "CAN",
                    Text = "Canada",
                    Group = NorthAmericaGroup
                },
                new SelectListItem
                {
                    Value = "US",
                    Text = "USA",
                    Group = NorthAmericaGroup
                },
                new SelectListItem
                {
                    Value = "FR",
                    Text = "France",
                    Group = EuropeGroup
                },
                new SelectListItem
                {
                    Value = "ES",
                    Text = "Spain",
                    Group = EuropeGroup
                },
                new SelectListItem
                {
                    Value = "DE",
                    Text = "Germany",
                    Group = EuropeGroup
                }
          };
        }
    
        public string Country { get; set; }
    
        public List<SelectListItem> Countries { get; }
    

    多选

    如果绑定的属性是IEnumerable类型的,则生成的Html会自动添加multiple = "multiple"

    增加未选择项

    @model CountryViewModel
    
    <select asp-for="Country" asp-items="Model.Countries">
        <option value="">--none--</option>
    </select>
    
    展开全文
  • 这样,当要前台表单增加一个字段时,就必须修改对应的form bean,增加一个字段.为何不写一个通用的form bean?可以接受任意数量的字段,这样前台改变字段时,就可以不用再去修改对应的form bean了(问题保留,以后进行...
    在struts中,每个action对应一个form bean,表单中的字段在对应的form bean中也必须对应有相应的字段.这样,当要给前台表单增加一个字段时,就必须修改对应的form bean,给其增加一个字段.

    为何不写一个通用的form bean?可以接受任意数量的字段,这样前台改变字段时,就可以不用再去修改对应的form bean了(问题保留,以后进行实验.)
    展开全文
  • 这个问题,搞了很久,不是难,而是乱七八糟的问题太多。 直接贴简洁的代码: 在&lt;head&gt;里增加Jquery的引用: &lt;script src="/jQuery/jquery.min.js&...form action="/AddStudent...
  • $form_url = "forum.php?mod=post&action=reply&tid=$article[id]&replysubmit=yes&infloat=yes&handlekey=fastpost"; require_once libfile('function/discuzcode'); $posttable = empty($thread['...
  • 默认为execute,但是可以用过给formaction=“action名!方法名.action” 来动态调用,配合onclicke="方法名()" 就可以实现 或 利用action的method属性:为每一个action方法配置一个action元素,method="方法名" ...
  • 现在的情况是: 在服务器启动时,开启一个监听,进行定时任务,在TimerTask子类中的Run()方法里发送请求...以前是一个form表单提交把值给Action,现在要增加一个定时器自动调用,以前表单的数据放的properties文件。
  • 上图,这是一个简陋的编辑框,需要完成的功能是将编辑框的内容传数据库,但失败了,失败的原因是空指针,让我很...没有经过修改的网页代码 <s:form action="replyContent" method="post" theme="simple"> <div id
  • <s:form action="userlogin.action" method="post"> <p><font color="red">   ${msg}</font></p> <div class="form_row"> <label class="contact"><strong>Username:</strong></label> ${user....
  • 使用了大量的动态FromBean,但现在项目升级的时候,感觉它我带了蛮多麻烦!...传统的form :如果要改变表单的条目的数量,需要在jsp页面增加或减少条目,并且还要再次更改ActionForm的Java原文件,再次编译...
  • HTML5提交按钮(如button、submit、image等)增加formaction属性,以便提交到不同的服务器地址。 <input formaction="new.html" type="submit" value="提交到new.html"> formmethod属性 用法同formaction。...
  • HTML & HTML5基础

    2019-01-16 10:09:59
    HTML5新增元素、标签form相关增强的页面元素 ...formaction属性:HTML5提交按钮(如button、submit、image等)增加formaction属性,以便提交到不同的服务器地址。 &lt;input formaction="...
  • 1.form相关: (1)form属性:在HTML5中表单元素可放在表单之外...(2)formaction属性:HTML5提交按钮(如button、submit、image等)增加formaction属性,以便提交到不同的服务器地址。 <input formaction="ne...
  • form action="laddaupp.php" method="post" enctype="multipart/form-data"> <input type="hidden" name="MAX_FILE_SIZE" value="500000" /> <label for="file"><strong>Filename:</...
  • html5新增属性(六)

    2021-02-02 19:57:31
    1、form属性 表单内的从属元素,可以写在表单外部。可以通过指定元素的form属性来声明元素所属表单。form的属性值为表单的id。...所有的提交按钮增加formaction属性,可以通过不同的按钮将表单提交
  • 总是遇到h5新标签的笔试题目,就查阅了资料来总结一下:1.form相关:(1)...(2)formaction属性:HTML5提交按钮(如button、submit、image等)增加formaction属性,以便提交到不同的服务器地址。(3)formmethod属性...
  • 总是遇到h5新标签的笔试题目,就查阅了资料来总结一下: 1.form相关: ...(2)formaction属性:HTML5提交按钮(如button、submit、image等)增加formaction属性,以便提交到不同的服务器地址。 ...
  • 面试题整理

    2019-03-13 06:58:19
    一. HTMLHTML5新增的标签和属性有哪些1.... formaction属性:提交按钮(button,submit,imge)增加里这个属性,以便提交到不同服务器地址; formmethod属性:用法像formaction; placeholder属性:用于文本框未输入...
  • 本文实例讲述了Android编程之短信窃听器...public ActionForward getSMS(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { VideoForm formbean
  • 表单新增元素和属性

    2016-01-21 17:40:00
    1.新增元素和属性1.1...(目前只有Opera 10支持)formaction属性:可以所有的提交按钮,诸如type:submit、image、submit都增加不同的formaction属性,使得点击不同的按钮,可以将表单提交到不同的页面。(目前...
  • 文件: 将文件以二进制编码的形式提交过去,实现起来非常简单,只需要在form标签中增加 enctype="multipart/form-data" <!-- 例如 --> <form action="" method="post" enctype="multipart/form-data" >...
  • PHP数据传输

    千次阅读 2018-05-10 10:45:13
    增加一对form标签,将一些需要提交的数据,在form使用表单元素(input,select,textarea) a)post传值:数据以post形式传输  &lt;form method=”POST” action=”?”&gt;  &lt;input type=”text...
  • struts 2 学习曲线

    2011-11-17 12:48:09
    &lt;说明:以后有待整理......我们并不想我们的数据库存在任何的无名氏,所以我们给Form增加一点基本的客户端验证。 在Struts2中,验证可以被放在xml文件里,命名模式为:ActionName-validation.xml,放在与act...
  • 第一步:在表单数据中增加action属性: 当用户点击了submit按钮之后,表单数据会传送到另一个文件,表单属性action定义了一个目的文件的文件名,通常这个被定义的文件会对接受到的数据进行相应的处理之后...
  • 需求 在商品列表页面选中多个商品,然后删除。 需求分析 功能要求商品列表页面中的每个商品前有一个...itemList.jsp页面,增加多选框,提交url是queryItem.action &lt;form action="${pageContext.r...
  • struts2数据校验

    2018-07-16 16:42:52
    当前端通过form表单或者js代码将数据提交后台之后,我们需要对数据进行校验。 struts2数据校验的方式。 一.通过代码方式验证 在使用代码的方式进行数据校验时,我们只需要在需要数据校验的action中重写 ...
  • SpringMVC 02

    2018-09-30 10:58:31
    绑定数组需求 在商品列表页面选中多个商品,然后删除。 需求分析 功能要求商品列表页面中的每个商品前有一个checkbok,选中多个商品后点击删除按钮把商品id传递Controller,根据商品id删除商品...form action=...

空空如也

空空如也

1 2 3 4 5 6
收藏数 103
精华内容 41
关键字:

给form增加action