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

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。