zoukankan      html  css  js  c++  java
  • 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)%>

  • 相关阅读:
    ExtJS小技巧
    Oracle 表的行数、表占用空间大小,列的非空行数、列占用空间大小 查询
    NPM 私服
    IDEA 不编译java以外的文件
    SQL 引号中的问号在PrepareStatement 中不被看作是占位符
    Chrome 浏览器自动填表呈现淡黄色解决
    批量删除Maven 仓库未下载成功.lastupdate 的文件
    Oracle 11g 监听很慢,由于监听日志文件太大引起的问题(Windows 下)
    Hibernate 自动更新表出错 建表或添加列,提示标识符无效
    Hibernate 自动更新表出错 More than one table found in namespace
  • 原文地址:https://www.cnblogs.com/ingstyle/p/4324476.html
Copyright © 2011-2022 走看看