【总结-前台发送后台接收表单】MVC提交表单的四种方式
后台控制器接收前台表单参数三种方法:
一、普通参数 HTML标签name 和参数名一样。
- public ActionResult AskForm(string txtTitle, string txtEditor, string dplBDTType, string selType, string txtYZM)
- {
- }
二、实体参数 HTML标签name 属性和Model属性保持一致
- [HttpPost]
- public ActionResult Apply(ViewModel.SNS.Star model)
- {
- //逻辑
- }
三、表单集合
- [HttpPost]
- public ActionResult Apply(FormCollection Form)
- {
- //逻辑
- }
前台表单发送给后台控制器三种方法:
- 一、HtmlHelper方法
- Html.BeginForm(actionName,controllerName,method,htmlAttributes){}
- Html.BeginRouteForm(HtmlHelper, String, Object, FormMethod)
- 二、传统Form表单Aciton属性提交
- 三、Jquery+Ajax 提交表单
一、Html.BeginForm
- Html.BeginForm (actionName ,controllerName ,method ,htmlAttributes) { } //注:所有要提交的内容包括按钮都必须在{ }内
参数
- htmlHelper 此方法扩展的 HTML 帮助器实例 类型:System.Web.Mvc.HtmlHelper
- actionName 操作方法的名称 类型:System.String
- controllerName 控制器的名称 类型:System.String
- routeValues 一个包含路由参数的对象。 通过检查对象的属性,利用反射检索参数。 此对象通常是使用对象初始值设定项语法创建的 类型:System.Object
- method 用于处理窗体的 HTTP 方法(GET 或 POST) 类型:System.Web.Mvc.FormMethod
- htmlAttributes 一个对象,其中包含要为该元素设置的 HTML 特性 类型:System.Object
- 返回值 类型:System.Web.Mvc.Html.MvcForm <form> 开始标记
用法说明
在 Visual Basic 和 C# 中,您可以对 HtmlHelper 类型的任何对象将此方法作为实例方法调用。在您使用实例方法语法调用此方法时,将忽略第一个参数
- <h1>在线申请</h1>
- @using (Html.BeginForm("Apply", "Star", FormMethod.Post, new {@class="MyForm"}))
- {
- <div class="application_b_3">
- <table width="" border="">
- <tr>
- <td width="" height="">达人类型</td>
- <td width="">
- @Html.DropDownListFor(m => m.StarModel.TypeID, Model.DropList, new { id = "type", @class = "my-" })
- </td>
- </tr>
- <tr>
- <td height="">首页达人照</td>
- <td>
- <div class="picture_an" id="UploadPhoto" style="width: 142px">
- <a href="javascript:void(0);" class="btn_addPic"><span><em>+</em>上传照片</span>
- <input tabindex="" title="支持jpg、jpeg、gif、png格式,文件小于5M" size="" name="pic" id="absFileInput" class="filePrew" type="file" />
- </a>
- </div>
- </td>
- </tr>
- <tr>
- <td height=""></td>
- <td>
- @Html.HiddenFor(m => m.StarModel.UserGravatar, new { id = "SXtPhoto" })
- <img src="" id="imgPhoto" height="176px" />
- </td>
- </tr>
- <tr>
- <td height="">自荐理由</td>
- <td>
- @Html.TextAreaFor(m => m.StarModel.ApplyReason, new { id = "tDesc" })
- </td>
- </tr>
- <tr>
- <td height=""></td>
- <td>
- <a href=" javascript:void(0)" id="btnApplication"><img src="@Url.Content("~/Areas/SNS/Themes/Default/Content/images/ap_9.gif")" alt="" /></a>
- </td>
- </tr>
- </table>
- </div>
- }
- Html.BeginRouteForm ( HtmlHelper, String, Object, FormMethod )
参数
- htmlHelper 此方法扩展的 HTML 帮助程序实例 类型:System.Web.Mvc.HtmlHelper
- routeName 用于获取窗体发布 URL 的路由的名称 类型:System.String
- routeValues 一个包含路由参数的对象。 通过检查对象的属性,利用反射检索参数。 此对象通常是使用对象初始值设定项语法创建的 类型:System.Object
- method 用于处理窗体的 HTTP 方法(GET 或 POST) 类型:System.Web.Mvc.FormMethod
返回值
一个开始 <form> 标记 类型:System.Web.Mvc.Html.MvcForm
使用说明
在 Visual Basic 和 C# 中,可以在 HtmlHelper 类型的任何对象上将此方法作为实例方法来调用。当使用实例方法语法调用此方法时,请省略第一个参数。
- <div class="group-search-box clearfix">
- @using (Html.BeginRouteForm("SearchPage", new { cityID = Model.CityID, productType = Model.CurrentProductType, currentPageIndex = Model.CurrentIndex, keyword = Model.keyword }, FormMethod.Get))
- {
- <input type="text" name="keyword" class="search-ipt" value=@Model.keyword>
- <input type="submit" id="submit" value="搜 索" class="gsearch-btn" >
- }
- </div>
二、传统Form表单Aciton属性提交
直接利用html表单的Aciton属性进行提交。
方法示例
- <form id="askform" action="@Url.Action("AskForm")" method="post">
- <div class="title-area-outter clearfix">
- <span></span>
- <select id="dplBDTType" name="dplBDTType"></select>
- <select id="selType" name="selType"></select>
- </div>
- </form>
三、Jquery+Ajax 提交表单
View 部分
- <div class="issue" id="postWeibo" style="width: 80px">
- <a href="javascript:void(0)" class="publish-btn">发布</a>
- </div>
Jquery和Ajax部分
- //发布长微博
- $("#postWeibo").click(function () {
- var blogID = $("#hfID").val();
- var title = $("#title").val();
- var imgurl = $("#previewImgHide").val();
- var des = editor.getContent();
- if (title == "") {
- ShowFailTip('微博标题不能为空!');
- return;
- }
- if (title.length >= ) {
- ShowFailTip("微博标题不能超出40个字!");
- return;
- }
- //检查是否数字
- if (isNaN(fee)) {
- ShowFailTip("不能包含文本必须是数值!");
- return;
- }
- if (ContainsDisWords(title + des)) {
- ShowFailTip('您输入的内容含有禁用词,请重新输入!');
- return;
- }
- $.ajax({
- url: "/fx" + $Maticsoft.BasePath + "Blog/AjaxUpdate",
- type: 'POST',
- async: false,
- dataType: 'html',
- // timeout: 10000,
- data: { Title: title, CityID: city, Fee: fee, CategoryID: category, Days: days, Tag: tag, startDate: startdate, endDate: enddate, ImgUrl: imgurl, Des: des, BlogID: blogID }, //
- success: function (resultData) {
- $(".dialogDiv").hide();
- if (resultData == "No") {
- ShowFailTip("操作失败,请您重试!");
- } else if (resultData == "AA") {
- $.jBox.tip('管理员不能操作', 'error');
- } else {
- var data = $(resultData);
- }
- }
- });
- });
【总结-前台发送后台接收表单】MVC提交表单的四种方式的更多相关文章
- ASP.NET MVC之下拉框绑定四种方式(十)
前言 上两节我们讲了文件上传的问题,关于这个上传的问题还未结束,我也在花时间做做分割大文件处理以及显示进度的问题,到时完成的话再发表,为了不耽误学习MVC其他内容的计划,我们今天开始好好讲讲关于MVC ...
- C#拷贝一个库的表到另外一个库中(的四种方式)
1.该方法 基本不能用于实际开发中 ,仅供学习参考 public string Copy() { //要复制的表名 string table = "AAAAA"; //构造连接字符 ...
- spring mvc 返回json数据的四种方式
一.返回ModelAndView,其中包含map集 /* * 返回ModelAndView类型的结果 * 检查用户名的合法性,如果用户已经存在,返回false,否则返回true(返回json数据,格式 ...
- EF5+MVC4系列(7) 后台SelectListItem传值给前台显示Select下拉框;后台Action接收浏览器传值的4种方式; 后台Action向前台View视图传递数据的四种方式(ViewDate,TempDate,ViewBag,Model (实际是ViewDate.Model传值))
一:后台使用SelectListItem 传值给前台显示Select下拉框 我们先来看数据库的订单表,里面有3条订单,他们的用户id对应了 UserInfo用户表的数据,现在我们要做的是添加一个Ord ...
- C# MVC提交表单的四种方式(转)
Mvc 提交表单的4种方法全程详解(转) 一,MVC HtmlHelper方法 Html.BeginForm(actionName,controllerName,method,htmlAttribu ...
- JavaScript表单提交四种方式
总结JavaScript表单提交四种方式 <!DOCTYPE html> <html> <head> <title>JavaScript表单提交四种方式 ...
- JavaWeb -- Struts1 使用示例: 表单校验 防表单重复提交 表单数据封装到实体
1. struts 工作流程图 超链接 2. 入门案例 struts入门案例: 1.写一个注册页面,把请求交给 struts处理 <form action="${pageContext ...
- MVC验证10-到底用哪种方式实现客户端服务端双重异步验证
原文:MVC验证10-到底用哪种方式实现客户端服务端双重异步验证 本篇将通过一个案例来体验使用MVC的Ajax.BeginForm或jQuery来实现异步提交,并在客户端和服务端双双获得验证.希望能梳 ...
- spring mvc获取路径参数的几种方式 - 浅夏的个人空间 - 开源中国社区
body { font-family: "Microsoft YaHei UI","Microsoft YaHei",SimSun,"Segoe UI ...
随机推荐
- Java实现 LeetCode 671 二叉树中第二小的节点(遍历树)
671. 二叉树中第二小的节点 给定一个非空特殊的二叉树,每个节点都是正数,并且每个节点的子节点数量只能为 2 或 0.如果一个节点有两个子节点的话,那么这个节点的值不大于它的子节点的值. 给出这样的 ...
- Java实现 LeetCode 354 俄罗斯套娃信封问题
354. 俄罗斯套娃信封问题 给定一些标记了宽度和高度的信封,宽度和高度以整数对形式 (w, h) 出现.当另一个信封的宽度和高度都比这个信封大的时候,这个信封就可以放进另一个信封里,如同俄罗斯套娃一 ...
- Java实现 串中取3个不重复字母
从标准输入读入一个由字母构成的串(不大于30个字符). 从该串中取出3个不重复的字符,求所有的取法. 取出的字符,要求按字母升序排列成一个串. 不同的取法输出顺序可以不考虑. 例如: 输入: abc ...
- Linux用户管理命令useradd、passwd、who详解
创建用户命令useradd 命令useradd,所在路径为: 可以看到命令useradd的路径为:/usr/sbin/useradd,因此它的执行权限是root 命令的功能是创建一个新用户,例如:us ...
- 一篇文章快速搞懂 Atomic(原子整数/CAS/ABA/原子引用/原子数组/LongAdder)
前言 相信大部分开发人员,或多或少都看过或写过并发编程的代码.并发关键字除了Synchronized,还有另一大分支Atomic.如果大家没听过没用过先看基础篇,如果听过用过,请滑至底部看进阶篇,深入 ...
- Java基础(十)
一.XML概述 属性文件是用来描述程序配置,属性文件包含了一组名/值对.属性文件采用的是一种单一的平面层次结构,同时属性文件要求键是唯一的. XML格式能够表达层次结构,并且重复的元素不会被曲解. H ...
- Java I/O模型及其底层原理
Java I/O是Java基础之一,在面试中也比较常见,在这里我们尝试通过这篇文章阐述Java I/O的基础概念,帮助大家更好的理解Java I/O. 在刚开始学习Java I/O时,我很迷惑,因为网 ...
- MySQL触发器的详细教学与综合分析
所有知识体系文章,GitHub已收录,欢迎老板们前来Star! GitHub地址: https://github.com/Ziphtracks/JavaLearningmanual MySQL触发器 ...
- 通过数据库客户端界面工具DBeaver连接Hive
前言 本文讲解如何通过数据库客户端界面工具DBeaver连接hive,并解决驱动下载不下来的问题. 1.为什么使用客户端界面工具 为什么使用客户端界面工具而不用命令行使用hive 通过界面工具查看分析 ...
- c++无法解析的外部符号 "int const bufferSize
无法解析的外部符号 "int const bufferSize 严重性 代码 说明 项目 文件 行 禁止显示状态错误 LNK2001 无法解析的外部符号 "int const bu ...