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_传值取值应用的更多相关文章

  1. React使用DVA本地state传值取值

    React使用DVA本地state传值取值 最近在用Ant Pro 做一个后台系统,在使用中发现Antd Pro使用DVA来实现redux+sagas+router一系列的功能,比传统方式要方便快捷的 ...

  2. 微信小程序 传值取值的方法总结

    微信小程序 传值取值的几种方法总结 列表index下标取值 页面传值 form表单取值 1. 列表index下标取值 实现方式是:data-index="{{index}}"挖坑及 ...

  3. 【2017-05-21】WebForm跨页面传值取值、C#服务端跳转页面、 Button的OnClientClick属性、Js中getAttribute和超链接点击弹出警示框。

    一.跨页面传值和取值: 1.QueryString - url传值,地址传值 优缺点:不占用服务器内存:保密性差,传递长度有限. 通过跳转页面路径进行传值,方式: href="地址?key= ...

  4. WebForm跨页面传值取值、C#服务端跳转页面、 Button的OnClientClick属性和超链接点击弹出警示框

    一.跨页面传值和取值: 1.QueryString - url传值,地址传值 优缺点:不占用服务器内存:保密性差,传递长度有限. 通过跳转页面路径进行传值方式: href="地址?key=v ...

  5. 微信小程序传值取值的几种方法

    一,列表index下的取值 实现方式是:data-index="{{index}}"挖坑及e.currentTarget.dataset.index来填坑即可 1.1生成值 < ...

  6. session传值取值

    protected void Page_Load(object sender, EventArgs e) { //判断session是否为空 if (Session["user"] ...

  7. ASP.NET GridView HyperLinkField传值和取值【转】

    来源:http://www.cnblogs.com/junjie94wan/archive/2011/08/17/2143623.html 经常做Winform程序,好久没有做WEB都有些生疏了,Gr ...

  8. 怎么掌握微信小程序的取值、传值、数据存储

    小程序界面设定如下 父级页面:A界面 子级页面:B界面 异级页面:C界面 一.本页面取值(A界面→A界面) a.例如:input输入文字获取到value(键盘输入时触发) wxml: <inpu ...

  9. .aspx.cs传值与取值

    1:.aspx中post传值 $.post("ABP_ExchangeRatelz.aspx", { option: "isdelete", Ori_Curre ...

随机推荐

  1. 对于数据包的截取,使用linux中的netfilter钩子函数

    http://blog.csdn.net/wswifth/article/details/5115358 在师哥的代码(packet.c)中使用的是Linux2.4内核中的一个子系统:netfilte ...

  2. 配置开发支持高并发TCP连接的Linux应用程序全攻略

    http://blog.chinaunix.net/uid-20733992-id-3447120.html http://blog.chinaunix.net/space.php?uid=16480 ...

  3. Oracle之ORA-00972: identifier is too long

    一.前言 今天在程序的日志中出现这个错误,网上搜了一下发现,说是Oracle的对象名字最多是30个字符,不能超过30,而我出错的sql是: "select * from test where ...

  4. jQueryEasyUI Messager基本使用

    二.jQueryEasyUI Messager基本使用 1.$.messager.alert(title, msg, icon, fn)1>.基本用法 代码: 1 2 3 4 5 6 7 8 9 ...

  5. NOI剑客决斗

    http://acm.nyist.net/JudgeOnline/problem.php?pid=110 剑客决斗 时间限制:5000 ms  |  内存限制:65535 KB 难度:5   描述 在 ...

  6. look

    CSS3新浪微博模板商店列表图片抖动特效-易玩稀有 私家飞碟 | ¥18.00 开通会员  免费使用 购买 远古生物 | ¥18.00 开通会员  免费使用 购买 天地撞击 | ¥18.00 开通会员 ...

  7. 关于mysql varchar 类型的最大长度限制

    Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. This ...

  8. SQL事务回滚样例

    选课系统,当同意学号选课数量超过则回滚事务,符合条件则正常插入数据 --开始一个事务处理Begin Tran T1 --执行插入操作insert into Courselist values('201 ...

  9. 3d中的坐标系的概念

    世界坐标系 世界坐标系是一个特殊的坐标系,它建立了描述其它坐标系所需要的参考框架.从另一方面说能够用世界坐标描述其它坐标系的位置,而不能用更大的.外部的坐标系来描述世界坐标系. 物体坐标系 物体坐标系 ...

  10. 目前比较全的CSS重设(reset)方法总结

    在当今网页设计/开发实践中,使用CSS来为语义化的(X)HTML标记添加样式风格是 重要的关键.在设计师们的梦想中都存在着这样的一个完美世界:所有的浏览器都能够理解和适用多有CSS规则,并且呈现相同的 ...