您的位置:首页 > 其它

Mvc4_传值取值应用

2015-09-14 18:26 183 查看
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)%>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: