Mvc4_传值取值应用
Mvc路由运行机制:
首先,Web 浏览器向服务器发送一条URL 请求,如http://HostName/ControllerName/ActionName/Parameters。
其次,请求被ASP. NET MVC 的路由映射系统获取, 并按照映射规则, 解析出 ControllerName,ActionName 和Parameters;
再次,到Controllers 目录下找到ControllerNameController.cs 类, 并在这个类中找到与 ActionName 同名的方法,将Parameters 作为参数传给这个方法;
最后,Action 方法开始执行,完成后将返回相应视图
四种传值取值方式:
1.Request
1. Request.Form:获取以POST方式提交的数据(接收Form提交来的数据)
View视图下:post方式提交数据
<% Html.BeginForm("LogOnMothed ", " User ", FormMethod.Post); %>
或
<form id="login" action="/User/LogOnMothed" method="post">
控制器下:
Request.form[“”].tostring();
2. Request.QueryString:获取地址栏参数(以及以GET方式提交的数据)
.aspx页面代码
$(document).ready(function () {
getJOSNResourceBaseList();
   }
.js文件代码
<script type=”text/javascript”>
Function getJsonResourceBaseList()
{
Var param={param1:””,param2:””,param3:””};
Param.param1=”123”;
Param.param2=”456”;
Param.param3=”789”;
$.getJSON("/ResourceBase/getJOSNResourceBaseList", param, function (data) {
//具体方法操作
}
</script>
.controller文件中调用
然后再ResourceBaseController.cs下的getJOSNResourceBaseList方法下QueryString获取参数:
Request.QueryString[“param1”];
Request.QueryString[“param2”];
Request.QueryString[“param3”];
2.Dictionary
在控制器赋值:
Dictionary<string, object> userModel = new Dictionary<string, object>();
userModel.Add("UserID", “123”);
userModel.Add("UserName", “456”);
ViewData["UserData"] = userModel;
在视图页面取值:
<% Dictionary<string, object> UserModel = ViewData["UserData"] as Dictionary<string, object>; %>
<%=Html.TextBox("txtUserName", UserModel["UserName"].ToString())%>
接下来讲两种强类型数据的传递方法, ViewDta 和 Dynamic
说明:﹡ResourceBaseEditModelService.GetEditModelByID 返回类型为ResourceBaseEditModel
﹡ResourceBaseEditModel 是一个数据实体类型如:
public class ResourceBaseEditModel
{
public Guid Id{ get; set; }
}
3. ViewData 把强类型的ViewData对象从控制器传递给视图,这里只讲强类型对象的传递
在控制器中赋值:
ViewData["editModel"] = ResourceBaseEditModelService.GetEditModelByID(TempDeviceID.Value);
在视图页面取值:
<% ResourceBaseEditModel localModel = ViewData["Local"] as ResourceBaseEditModel; %>
<%=Html.TextBox("txtDeviceID", localModel.Id%>
4. Dynamic
在控制器赋值:
ResourceBaseEditModelmodel =ResourceBaseEditModelService.GetEditModelByID(TempDeviceID.Value);
dynamic viewModel = new ExpandoObject();
viewModel.UserID = model.Id;
viewModel.UserName = model.name;
return View(viewModel);
在视图页面取值:
<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<dynamic>" %>
<%=Html.TextBox("txtUserName", (string)Model.name)%>
<%=Html.TextBox("txtUserId", (string)Model.Id)%>
Mvc4_传值取值应用的更多相关文章
- React使用DVA本地state传值取值
		
React使用DVA本地state传值取值 最近在用Ant Pro 做一个后台系统,在使用中发现Antd Pro使用DVA来实现redux+sagas+router一系列的功能,比传统方式要方便快捷的 ...
 - 微信小程序 传值取值的方法总结
		
微信小程序 传值取值的几种方法总结 列表index下标取值 页面传值 form表单取值 1. 列表index下标取值 实现方式是:data-index="{{index}}"挖坑及 ...
 - 【2017-05-21】WebForm跨页面传值取值、C#服务端跳转页面、 Button的OnClientClick属性、Js中getAttribute和超链接点击弹出警示框。
		
一.跨页面传值和取值: 1.QueryString - url传值,地址传值 优缺点:不占用服务器内存:保密性差,传递长度有限. 通过跳转页面路径进行传值,方式: href="地址?key= ...
 - WebForm跨页面传值取值、C#服务端跳转页面、 Button的OnClientClick属性和超链接点击弹出警示框
		
一.跨页面传值和取值: 1.QueryString - url传值,地址传值 优缺点:不占用服务器内存:保密性差,传递长度有限. 通过跳转页面路径进行传值方式: href="地址?key=v ...
 - 微信小程序传值取值的几种方法
		
一,列表index下的取值 实现方式是:data-index="{{index}}"挖坑及e.currentTarget.dataset.index来填坑即可 1.1生成值 < ...
 - session传值取值
		
protected void Page_Load(object sender, EventArgs e) { //判断session是否为空 if (Session["user"] ...
 - ASP.NET GridView HyperLinkField传值和取值【转】
		
来源:http://www.cnblogs.com/junjie94wan/archive/2011/08/17/2143623.html 经常做Winform程序,好久没有做WEB都有些生疏了,Gr ...
 - 怎么掌握微信小程序的取值、传值、数据存储
		
小程序界面设定如下 父级页面:A界面 子级页面:B界面 异级页面:C界面 一.本页面取值(A界面→A界面) a.例如:input输入文字获取到value(键盘输入时触发) wxml: <inpu ...
 - .aspx.cs传值与取值
		
1:.aspx中post传值 $.post("ABP_ExchangeRatelz.aspx", { option: "isdelete", Ori_Curre ...
 
随机推荐
- 如果在遨游浏览器里设置Bing(必应)搜索为默认搜索
			
今天刚装了遨游浏览器,发现搜索引擎列表里没有Bing(必应)搜索的选项,就自己DIY了下. 步骤: 1. 在遨游搜索引擎列表管理里,添加一个新的搜索引擎项: Name:填写上”Bing(必应)“ (这 ...
 - CaronteFX插件简介
			
CaronteFX是一个基于烘培的unity物理增强插件,而不是实时的. 也正因为如此可以在Cutscene中使用,而不用切到maya之类得到软件里去做,以提高效率 Adam demo里一些角色布料( ...
 - vi编辑文件E437: terminal capability "cm" required 解决办法
			
E437: terminal capability "cm" required 这个错误一般是环境变量TERM没有配置或者配置错误所致. 解决办法: 执行export TERM=x ...
 - JAVA基础知识之JVM-——动态代理(AOP)
			
代理模式简介 在很多场景下,我们想使用一个类(通常是接口)A时,并不是直接使用这个类,而是通过另外一个类B去调用A的方法,这里的类B就是一个代理类. 有很多场景都会用到这种方法,例如假如创建类A需要很 ...
 - JAVA基础知识之Map集合
			
Map的内部结构Entry Set与Map的关系 Map的内部类Entry Map的通用方法及Map的简单用法 HashMap和HashTable的区别 HashMap和HashTable判断元素相等 ...
 - 华东交通大学2016年ACM“双基”程序设计竞赛 1005
			
Problem Description 最近侯ry感觉自己在数学方面的造诣不忍直视:他发现他的学习速率呈一个指数函数递增,疯狂的陷入学习的泥潭,无法自拔:他的队友发现了他的学习速率y=e^(b*lna ...
 - CAShapeLayer
			
之前讲过CALayer动画相关知识,再来看看更加复杂的CAShapeLayer相关的动画知识. 普通CALayer在被初始化时是需要给一个frame值的,这个frame值一般都与给定view的boun ...
 - 【Linux】linux常用基本命令
			
Linux中许多常用命令是必须掌握的,这里将我学linux入门时学的一些常用的基本命令分享给大家一下,希望可以帮助你们. 这个是我将鸟哥书上的进行了一下整理的,希望不要涉及到版权问题. 1.显示日 ...
 - 我的android学习经历23
			
学习fragment时遇到的问题 这几天学习fragment静态加载时遇到这样的问题: java.lang.RuntimeException: Unable to start activity Com ...
 - SQL查看表锁定,死锁解锁
			
select request_session_id spid,OBJECT_NAME(resource_associated_entity_id) tableName from sys.dm_tran ...