mvc4的传值方式

转载 2015年07月10日 09:06:03

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)%>


ps:转自http://www.bubuko.com/infodetail-664377.html

相关文章推荐

MVC传值方式

ViewData传值 TempData传值

MVC中页面传值方式总结

MVC中的页面传值,通常指Controller和view之间的数据传递,经常用到的有几种方式,总结如下: 一、Controller----------->View 1、ViewData 获取或设置一个...

ASP.NET MVC view与controller传值方式(这篇比上篇好)

1: ViewData传值方式 ViewData的生命周期和View相同, 只对当前View有效.    ViewData["zd"] = dfdfd 2:TempData传值方式    可以...
  • bestlxm
  • bestlxm
  • 2011年09月07日 16:13
  • 4144

MVC 向页面传值方式

Mvc向页面传值的方式1. ViewBag 2. ViewData 3. TempDataViewBag首先我们需要

iOS 多种传值方式

  • 2016年06月11日 11:13
  • 1.07MB
  • 下载

Swift-传值方式-冉叔叔

  • 2016年06月25日 00:18
  • 57KB
  • 下载

Asp.Net 传值方式

asp.net页面间传值的9种方式 1. Get(即使用QueryString显式传递) 方式:在url后面跟参数。 特点:简单、方便。 缺点:字符串长度最长为255个字符;数据泄漏在url...

.net两种传值方式

  • 2013年03月26日 16:44
  • 2KB
  • 下载

几种JSP页面传值方式.txt

  • 2012年06月12日 17:46
  • 2KB
  • 下载

asp.net的页面传值方式

页面传值是学习asp.net初期都会面临的一个问题,总的来说有页面传值、存储对象传值、ajax、类、model、表单等。但是一般来说,常用的较简单有QueryString,Session,Cookie...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:mvc4的传值方式
举报原因:
原因补充:

(最多只允许输入30个字)