您好,欢迎来到刀刀网。
搜索
您的当前位置:首页mvc传值

mvc传值

来源:刀刀网


MVC下是如何传值的

最近在开发一个项目,用的是mvc框架,现将mvc会用到的常用传值方法总结如下:

在讲传递参数方法之前,先简单介绍一下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视图下:

<% Html.BeginForm(\"LogOnMothed \", \" User \", FormMethod.Post); %>

控制器下:

Request.form[“”].tostring();

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

.aspx页面代码

$(document).ready(function () {

getJOSNResourceBaseList();

}

.js文件代码

.controller文件中调用

然后再ResourceBaseController.cs下的QueryString获取参数:

Request.. QueryString[“param1”];

Request.. QueryString[“param2”];

Request.. QueryString[“param3”];

2.Dictionary

在控制器赋值:

getJOSNResourceBaseList方法下

Dictionary userModel = new Dictionary();

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

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

ViewData[\"UserData\"] = userModel;

在视图页面取值:

<% Dictionary UserModel = ViewData[\"UserData\"] as Dictionary; %>

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

说明:﹡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\"] ResourceBaseEditModel; %>

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

4. Dynamic

在控制器赋值:

ResourceBaseEditModel model ResourceBaseEditModelService.GetEditModelByID(TempDeviceID.Value); dynamic viewModel = new ExpandoObject();

=

as =

viewModel.UserID = model.Id;

viewModel.UserName = model.name;

return View(viewModel);

在视图页面取值:

<%@ Page Language=\"C#\"

Inherits=\"System.Web.Mvc.ViewPage\" %>

<%=Html.TextBox(\"txtUserName\", (string)Model.name)%>

<%=Html.TextBox(\"txtUserId\", (string)Model.Id)%>

最近在开发一个项目,用的是mvc框架,现将mvc会用到的常用传值方法总结如下:

在讲传递参数方法之前,先简单介绍一下MVC路由及运行机制。

首先,Web 浏览器向服务器发送一条http://HostName/ControllerName/ActionName/Parameters。

URL 请求,如

其次,请求被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); %>

控制器下:

Request.form[“”].tostring();

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

.aspx页面代码

$(document).ready(function () {

getJOSNResourceBaseList();

}

.js文件代码

.controller文件中调用

然后再ResourceBaseController.cs下的 getJOSNResourceBaseList方法下QueryString获取参数:

Request.QueryString[“param1”];

Request.QueryString[“param2”];

Request.QueryString[“param3”];

2.Dictionary

在控制器赋值:

Dictionary userModel = new Dictionary();

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

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

ViewData[\"UserData\"] = userModel;

在视图页面取值:

<% Dictionary UserModel = ViewData[\"UserData\"] as Dictionary; %>

<%=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\"] ResourceBaseEditModel; %>

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

4. Dynamic

在控制器赋值:

ResourceBaseEditModel model ResourceBaseEditModelService.GetEditModelByID(TempDeviceID.Value);

dynamic viewModel = new ExpandoObject();

viewModel.UserID = model.Id;

viewModel.UserName = model.name;

return View(viewModel);

在视图页面取值:

as =

<%@ Page Language=\"C#\"

Inherits=\"System.Web.Mvc.ViewPage\" %>

<%=Html.TextBox(\"txtUserName\", (string)Model.name)%>

<%=Html.TextBox(\"txtUserId\", (string)Model.Id)%>

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- gamedaodao.com 版权所有 湘ICP备2022005869号-6

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务