MVC模式下值的传递

公司项目转用MVC开发,故学习总结一下mvc会用到的常用传值方法:

      正如大家都熟悉的,MVC路由及运行机制是:

      首先,Web 浏览器向服务器发送一条URL 请求,如http://localhost:10080/Home/Register,也就是(http://HostName/ControllerName/ActionName/Parameters)。

其次,请求被ASP. NET MVC 的路由映射系统获取,并按照映射规则, 解析出 ControllerName,ActionName 和Parameters;

再次,到Controllers 目录下找到ControllerNameController.cs 类, 并在这个类中找到与 ActionName 同名的方法,将Parameters 作为参数传给这个方法;

最后,Action 方法开始执行,完成后将返回相应视图

经查阅学习到四种传值方式,根据不同情况下具体运用

一、Request

1. Request.Form:获取以Post方式提交的数据(接受Form提交来的数据)

(1)View视图下:post方式提交数据

<% Html.BeginForm("Register", "Home", FormMethod.Post); %>或

<form id="register" action="/Home/Register" method="post">

(2)Controller控制器下:Request获取数据

Request.Form[""].ToString();

2. Request.QueryString:获取地址栏参数(及以Get方式提交的数据)

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>

(1).aspx页面代码

$(document).ready(function () {

getJOSNResourceBaseList();

}

(2).Controller文件中获取JS方法中的参数(ResourceBaseController下的getJOSNResourceBaseList方法)

Request.QueryString["param1"];

Request.QueryString["param2"];

Request.QueryString["param3"];

3. Dictionary

(1) 在控制器赋值:

Dictionary<string,object> userModel = newDictionary<string,object>();

userModel.Add("UserID", “123”);

userModel.Add("UserName", “456”);

ViewData["UserData"] = userModel;

(2)在视图页面取值:

<% Dictionary<string, object> UserModel = ViewData["UserData"]as Dictionary<string,object>; %>

<%=Html.TextBox("txtUserName", UserModel["UserName"].ToString())%>

接下来讲两种强类型数据的传递方法, ViewData  和 Dynamic

注意:ResourceBaseEditModelService.GetEditModelByID返回类型为ResourceBaseEditModel

ResourceBaseEditModel是一个数据实体类型如:

public  class  ResourceBaseModel

{ public Guid Id{ get; set;}   }

4.  ViewData  把强类型的ViewData对象从控制器传递给视图,这里只讲强类型对象的传递

(1)在控制器中赋值:

      ViewData["editModel"] =ResourceBaseEditModelService.GetEditModelByID(TempDeviceID.Value);

(2)在视图页面取值:

<% ResourceBaseEditModel localModel = ViewData["Local"]as ResourceBaseEditModel;%>

<%=Html.TextBox("txtDeviceID",  localModel.Id%>

5.  Dynamic

(1)在控制器赋值:

ResourceBaseEditModel model = ResourceBaseEditModelService.GetEditModelByID(TempDeviceID.Value);
                  dynamic viewModel = new ExpandoObject();
                  viewModel.UserID = model.Id;
                  viewModel.UserName = model.name;
                  return View(viewModel);

(2)在视图页面取值:

<% @Page Language="C#" Inherits="System.Web.Mvc.ViewPage<dynamic>" %>
      <%= Html.TextBox("txtUserName", (string)Model.name) %>
      <%= Html.TextBox("txtUserId", (string)Model.Id) %>

时间: 2024-10-21 20:32:18

MVC模式下值的传递的相关文章

.net MVC模式下easyui datagrid控件分页

此参照一位仁兄代码,稍作修改 视图代码: <div id="tab" class="easyui-tabs" data-options="tools:'#tab-tools'" style="width:800px;height:400px"> <div title="****" style="padding:0px;"> <div class="

mvc模式下的数据库连接操作

mvc模式下数据库操作分为三部分,举一个容易理解的例子,mvc就是一种设计模式, 分为模型(Model),控制器(Controller ),视图(View),各自分工明确,连接数据库操作也遵从于这种模式 一部分是用来设置数据库的的用户名和密码的文件,可同时设置多个数据库的信息,实现可扩展性, 一部分是连接数据库,实例化类的操作, 一部分是用来调用实例化后的对象中的方法,写sql语句部分,分为了三个文件 在config.php文件中,设置常量define关于数据库信息,此处可以设置为二维数组,实现

【案例分享】使用ActiveReports报表工具,在.NET MVC模式下动态创建报表

提起报表,大家会觉得即熟悉又陌生,好像常常在工作中使用,又似乎无法准确描述报表.今天我们来一起了解一下什么是报表,报表的结构.构成元素,以及为什么需要报表. 什么是报表 简单的说:报表就是通过表格.图表等形式来动态显示数据,并为使用者提供浏览.打印.导出和分析的功能,可以用公式表示为: 报表 = 多样的布局 + 动态的数据 + 丰富的输出 报表通常包含以下组成部分: 报表首页:在报表的开始处,用来显示报表的标题.图形或说明性文字,每份报表只有一个报表首页. 页眉:用来显示报表中的字段名或对记录的

MVC模式下基于SSH三大框架的java web项目excel表格的导出(不依赖另外的jar包)

最近工作中碰到了需要将web页面的表格内容导出到excel表格并下载到本地的需求.以下是在利用网上资源.与同事探讨下,完成的代码. 首先我们需要有定义好的实体类.以下是截取了项目中用到的部分代码. 1 public class QyggDocuments implements java.io.Serializable { 2 3 private static final long serialVersionUID = -2543382529255041149L; 4 5 private Stri

Android:MVC模式(下)

在上一篇文章中,我们将 View 类单独出来并完成了设计和编写.这次我们将完成 Model 类,并通过 Controller 将两者连接起来,完成这个计算器程序. 模型(Model)就是程序中封装了数据,并定义了操作和处理这些数据的逻辑的对象.在计算器的例子中,就是处理输入的操作数和运算符,并计算返回结果.Let's Go (注意:示例中直接使用 double 类型来处理数据,但严格来说很多语言的浮点数计算都是不精确的) 一,设计模型的接口 在程序构建之初,我们首先考虑的应该是各模块间的封装和扩

前端之Android入门(5) – MVC模式(下)

我们将 View 类单独出来并完成了设计和编写.这次我们将完成 Model 类,并通过 Controller 将两者连接起来,完成这个计算器程序. 模型(Model)就是程序中封装了数据,并定义了操作和处理这些数据的逻辑的对象.在计算器的例子中,就是处理输入的操作数和运算符,并计算返回结果.Let’s Go(注意:示例中直接使用 double 类型来处理数据,但严格来说很多语言的浮点数计算都是不精确的) 一,设计模型的接口 在程序构建之初,我们首先考虑的应该是各模块间的封装和扩展,设计好模块的接

JavaWeb学习过程 之MVC模式下的查询

近些天一直在学习javaweb 但总是时断时续,今天终于有时间,来学习一下MVC下的查询模式. 一.首先先了解一下 什么是mvc? MVC是Model-View-Controller的简称,即模型-视图-控制器.它是一种设计模式,它吧应用程序分成三个核心模块,模型,视图,控制器.他们各自处理自己的任务. 模型:是应用程序的主体部分,模型指的是业务模型. 一个模型可以为多个视图提供数据. 视图:是用户看到的并与之交互的界面. 可以向用户显示相关的数据,接受用户的输入,但是它不进行任何实际的业务处理

PHP基于MVC模式下的幕仇美食网站、源码下载

大家好,我是全微毕设团队的创始人,本团队擅长JAVA(SSM,SSH,SPRINGBOOT).PYTHON.PHP.C#.安卓等多项技术. 今天将为大家分析一个幕仇美食网站,本项目是通过MVC框架技术来进行设计和实现的,项目主要用到的技术有php,javascript,html/css等,数据库使用的是MySQL. 现如今先进科学技术高速发展,计算机技术已经被社会的各个领域广泛应用.随着计算机技术和通信技术的迅猛发展,互联网的规模也逐步增大,互联网的元素也随之逐渐增加,可以利用其发展通信,也可以

PHP基于MVC模式下的化妆品销售网站,源码分享

大家好,我是全微毕设团队的创始人,本团队擅长JAVA(SSM,SSH,SPRINGBOOT).PYTHON.PHP.C#.安卓等多项技术. 今天将为大家分析一个化妆品销售网站,随着科技的迅速发展,计算机网络信息技术在当代社会越来越普及,基于Web平台上的商业活动也越来越密集.传统的交易大部分是面对面交易,在这种信息化时代,人们已经不能满足于传统的交易平台.信息的网络化管理在市场上的地位变得越来越重要,相对于人为管理而言,网络化管理更简单,工作效率更高.本文着重研究网络信息技术运用在化妆品购买,改