ASP.NET在MVC控制器中获取Form表单值的方法
在网站开发中我们经常需要用到表单,那么,在前台页面的表单中提交到后台控制器后,后台控制器如何接收表单提交过来的数据呢?下面我们介绍几种常用的方法。
我们先看看前台页面,这里我们用一个用户名和密码的表单来作为前台页面。
首先,我们新建一个MVC项目,然后添加一个控制器,UserInfoController;在控制器的默认方法index中,我们添加一个视图。这个index视图用来显示我们的前台注册页面。
视图如下:即使一个简单的表单~

代码如下,视图的关键点就是把表单内容提交到哪个控制器的那个方法。也即是通过action的url啦处理。

@{
Layout = null;
}
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>Index</title>
</head>
<body>
<div>
<!--提交到后台控制器中的GetUserInfo方法中-->
<form action="~/UserInfo/GetUserInfo" method="post">
<table>
<tr>
<!--必须给每一个字段取一个唯一的name,后台控制器通过name来识别-->
<td>
用户名:<input type="text" name="username" />
</td>
</tr>
<tr>
<td>
密 码:<input type="text" name="password" />
</td>
</tr>
<tr>
<td>
<input type="submit" value="提交" />
</td>
</tr>
</table>
</form>
</div>
</body>
</html>

接下来我们就需要在后台控制器中处理表单提交过来的信息了。我们先在UserInfo控制器下再写一个方法,用来接收表单传过来的数据。
第一种方法,关键点在于参数名称必须和表单的name是一致的。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc; namespace MvcDemo.Controllers
{
public class UserInfoController : Controller
{
// GET: UserInfo
public ActionResult Index()
{
return View();
} //参数的名称需要和表单的字段名称一致,这样系统便会直接赋值。
public ActionResult GetUserInfo(string username,string password) { //为了方便演示,我们直接输出这两个值,表示我们已经拿到了数据
return Content(username+"*****"+password);
}
}
}

第二种方法,FormCollection包含了表单的所有值,其实就是键值对,键就是表单字段中的name

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc; namespace MvcDemo.Controllers
{
public class UserInfoController : Controller
{
// GET: UserInfo
public ActionResult Index()
{
return View();
} //FormCollection包含了表单的所有值,其实就是键值对,键就是表单字段中的name
public ActionResult GetUserInfo(FormCollection collection) { string username = collection["username"];
string password = collection["password"]; //为了方便演示,我们直接输出这两个值,表示我们已经拿到了数据
return Content(username+"*****"+password);
}
}
}

第三种方法,直接拿值。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc; namespace MvcDemo.Controllers
{
public class UserInfoController : Controller
{
// GET: UserInfo
public ActionResult Index()
{
return View();
} public ActionResult GetUserInfo() { string username = Request["username"];
string password = Request["password"]; //为了方便演示,我们直接输出这两个值,表示我们已经拿到了数据
return Content(username+"*****"+password);
}
}
}

第四种,通过建立一个对象来接受字段信息。只要对象的属性和name对应,系统便会自动赋值。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc; namespace MvcDemo.Controllers
{
public class UserInfoController : Controller
{
// GET: UserInfo
public ActionResult Index()
{
return View();
} public ActionResult GetUserInfo(User user) { string username = user.Username;
string password = user.Password; //为了方便演示,我们直接输出这两个值,表示我们已经拿到了数据
return Content(username+"*****"+password);
}
} public class User { private string username; public string Username
{
get { return username; }
set { username = value; }
} private string password; public string Password
{
get { return password; }
set { password = value; }
} }
}
ASP.NET在MVC控制器中获取Form表单值的方法的更多相关文章
- ASP.Net MVC 在控制器中获取View中的form表单值的方法
在网站开发中,我们常常需要用到表单提交的方式,那么在MVC中是如何获取到表单中的数据呢?下面我们来介绍以下几种方式 首先我们先看看View前台页面 添加一个控制器 我们再看看前台页面的代码 @{ La ...
- ASP.Net 获取Form表单值
新建一HtmlPage1.html,如下post发送() <body> <form enctype="multipart/form-data" action=&q ...
- 在ASP.NET MVC控制器中获取链接中的路由数据
在ASP.NET MVC中,在链接中附加路由数据有2种方式.一种是把路由数据放在匿名对象中传递: <a href="@Url.Action("GetRouteData&quo ...
- 在 easyui中获取form表单中所有提交的数据 拼接到table列表中
form表单===== <!-- 并用药品填写信息弹框 --> <div id="usingProdctMsgDiv" style="display: ...
- 过滤器中获取form表单或url请求数据
var httpFormData = filterContext.HttpContext.Request.Form; var logContent = string.Empty; //获取url的 l ...
- MVC 在控制器中获取某个视图动态的HTML代码
ASP.NET MVC 在控制器中获取某个视图动态的HTML代码 如果我们需要动态的用AJAX从服务器端获取HTML代码,拼接字符串是一种不好的方式,所以我们将HTML代码写在cshtml文件中, ...
- MVC教程二:从控制器中获取URL的值
一.从控制器中获取URL的值有三种方式: 1.使用Request.QueryString[] 例如: string value = Request.QueryString["BookId&q ...
- ASP.NET Core 入门教程 4、ASP.NET Core MVC控制器入门
一.前言 1.本教程主要内容 ASP.NET Core MVC控制器简介 ASP.NET Core MVC控制器操作简介 ASP.NET Core MVC控制器操作简介返回类型简介 ASP.NET C ...
- ASP.NET Core 入门笔记5,ASP.NET Core MVC控制器入门
摘抄自https://www.cnblogs.com/ken-io/p/aspnet-core-tutorial-mvc-controller-action.html 一.前言 1.本教程主要内容 A ...
随机推荐
- 027 storm面试小题
1.大纲 Storm工作原理是什么? 流的模式是什么?默认是什么? 对于mapreduce如何理解? Storm的特点和特性是什么? Storm组件有哪些? 2.Storm工作原理是什么? 相对于ha ...
- Burnside引理和Polya定理之间的联系
最近,研究了两天的Burnside引理和Polya定理之间的联系,百思不得其解,然后直到遇到下面的问题: 对颜色限制的染色 例:对正五边形的三个顶点着红色,对其余的两个顶点着蓝色,问有多少种非等价的着 ...
- XAML控件不可访问,它具有一定的保护级别
其它namespace的代码访问控件时会出现这个问题 需要把控件状态由protected改为public <TextBlock x:FieldModifier="public" ...
- RSP小组——团队冲刺博客一——(领航)
RSP小组--团队冲刺博客一--领航 冲刺日期:2018年12月10日 团队目标 经过团队讨论,我们最新确定的α版本所需实现内容如下: 1.实现游戏代码的实现 2.在Android Studio上实现 ...
- 理解JavaScript【转】
第一题 if (!("a" in window)) { var a = 1; } alert(a); 第二题 var a = 1, b = function a(x ...
- typeof获取变量的数据类型 javascript
获取变量的数据类型:typeof <!DOCTYPE html> <html lang="en"> <head> <meta charse ...
- Matlab调用遗传工具箱复现论文模型求解部分
原文转载自:https://blog.csdn.net/robert_chen1988/article/details/52431594 论文来源: https://www.sciencedirect ...
- Android APT
APT APT(Annotation Processing Tool)是一种处理注释的工具,它对源代码文件进行检测找出其中的Annotation,使用Annotation进行额外的处理. Annota ...
- Linux 系统中的内部与外部命令
linux中的命令大致可分为两类,内部命令和外部命令: 内部命令(builtin command):也称shell内嵌命令 外部命令(external command):存放在一个文件中,使用时需要去 ...
- LSI IBM服务器阵列卡操作经历
说明:因为服务器的一个磁盘坏了,因为没有经验不敢操作.正好有一台撤下来的相同服务器,所以查找了各种教程,研究了一下各种操作.记录在这里,防止忘记.一.概念说明raid(自己百度)阵列卡组(group) ...