`

MVC 各种传值方式

阅读更多

【转自】:http://hi.baidu.com/honfei/blog/item/a7cdb7dd47de86d28d1029e5.html

示例一:
ViewData传值.
HomeController.cs Co

de:

public ActionResult Index()
{
     ViewData["Title" ] = "Home Page" ;
     ViewData["Message" ] = "Welcome to ASP.NET MVC!" ;
     return View();
}
Views/Home/Index.aspx Code:

<asp:Content ID="indexContent" ContentPlaceHolderID="MainContent" runat="server" >
    <p>
    <%= Html.Encode(ViewData["Message" ]) %>
    </p>
</asp:Content>

结果:在页面上显示Welcome to ASP.NET MVC!

示例二:
带参数传值.
URL Routing规则:

routes.MapRoute(
    "Default" ,                                              // Route name
    "{controller}/{action}/{param}" ,                           // URL with parameters
    new { controller = "Home" , action = "Index" , param = "" } // Parameter defaults
);
HomeController.cs Code:

public ActionResult Index(string param,int? paraInt,string paraStr)
{
    ViewData["Title" ] = "Home Page" ;
    ViewData["Message" ] = "Welcome to ASP.NET MVC!" ;
    ViewData["Param" ] = param;
    ViewData["ParaInt" ] = paraInt;
    ViewData["ParaStr" ] = paraStr;
    return View();
}
Views/Home/Index.aspx Code:

<asp:Content ID="indexContent" ContentPlaceHolderID="MainContent" runat="server" >
    <p>
    <%= Html.Encode(ViewData["Message" ]) %>
    </p>
    <p>
    <%= Html.Encode(ViewData["Param" ]) %>
    </p>
    <p>
    <%= Html.Encode(ViewData["ParaInt" ] ?? (object )"(null)" )%>
    </p>
    <p>
    <%= Html.Encode(ViewData["ParaStr" ] ?? (object )"(null)" )%>
    </p>
</asp:Content>
结果:
访问:/home/index/hello?paraint=520&parastr=world
显示: hello 520 world
访问:/home/index/hello
显示:hello (null) (null)

示例三:
强类型传值:
新建一个xml文件:
<?xml version="1.0" encoding="utf-8" ?>
<root>
<item name="Sea" >
    <animal>Fish</animal>
    <animal>Shrimp</animal>
    <animal>Crab</animal>
</item>
<item name="Sky" >
    <animal>Bird</animal>
    <animal>Man</animal>
</item>
</root>
新建一个类读取xml数据.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Xml.Linq;
using System.Web.Hosting;

namespace ViewData.Models
{
    public class Space
    {
        public string Name { get ; set ; }
        public string [] Animal { get ; set ; }
        private static Space space;
        public IEnumerable<Space> GetSpace()
        {
            XDocument xml = XDocument.Load(HostingEnvironment.MapPath("~/App_Data/Space.xml" ));
            IEnumerable<Space> results = from p in xml.Root.Elements("item" )
                                         select new Space
                                         {
                                             Name = p.Attribute("name" ).Value,
                                             Animal = p.Elements("animal" ).Select(r => r.Value).ToArray()
                                         } ;
            return results;
        }
        public static Space Instance
        {
            get
            {
                if (space == null )
                {
                    space = new Space();
                }
                return space;
            }
        }
    }
}
在HomeController内添加Action:
public ActionResult About()
{
    ViewData["Title" ] = "About Page" ;

    return View(Space.Instance.GetSpace());
}
在About.aspx.cs后天修改如下.
public partial class About : ViewPage<IEnumerable<Space>>
About.aspx调用数据:
<%foreach (var p in ViewData.Model){ %>
<ul>
<li><%=p.Name %>
<ul>
<%foreach (string r in p.Animal){ %>
<li><%=r%></li>
<%} %>
</ul>
</li>
</ul>
<%} %>
结果:

示例四:
表单的值回传给服务器.
新建一个UserM类:UserM.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace ViewData.Models
{
    public class UserM
    {
        public string Name { get ; set ; }
        public string Password { get ; set ; }
        private static UserM user;
        
        public static UserM Instance
        {
            get
            {
                if (user == null )
                {
                    user = new UserM();
                }
                return user;
            }
        }
    }
}
HomeControllers添加Action
[AcceptVerbs("GET")] //GET调用
public ActionResult Form()
{
    return View(UserM.Instance);
}

[ActionName("Form"), AcceptVerbs("POST")]//POST调用
public ActionResult SaveForm()
{
    UpdateModel(UserM.Instance, new [] { "Name" , "Password" } );
    return View(UserM.Instance);
}

Form.aspx.cs后台添加强类型引用
public partial class Form : ViewPage<UserM>

Form.aspx
<p>
<%=Html.Encode(ViewData.Model.Name) %><br />
<%=Html.Encode(ViewData.Model.Password) %>
</p>
    <%Html.BeginForm();%>
    Name:<%=Html.TextBox("Name" )%>
    Password:<%=Html.Password("Password" ) %>
    <input type="submit" value ="Submit" />
    <%Html.EndForm(); %>
结果:在form表单的内容将显示到当前页面
分享到:
评论

相关推荐

    C#MVC控制器前后端传值

    在C# MVC(Model-View-Controller)框架中,...总结,C# MVC控制器在前后端数据传递中扮演了关键角色,通过各种机制确保数据在正确的时间和地点被正确处理。理解并熟练掌握这些技巧,将有助于构建高效、安全的Web应用。

    MVC实现iframe弹窗传值

    在Web开发中,MVC(Model-...综上所述,实现MVC中的iframe弹窗传值涉及前端JavaScript交互、URL参数传递以及后端MVC的控制器和视图的配合。通过合理的代码组织和利用现有的库,可以创建出高效且易于维护的弹窗系统。

    ASP.net跨页面传值方式

    ### ASP.NET跨页面传值方式详解 #### 一、引言 在ASP.NET应用程序开发过程中,经常需要在不同页面之间传递数据。为了实现这一功能,ASP.NET提供了多种跨页面传值的方法,每种方法都有其适用场景和局限性。本文将...

    ASP.net中各种传值方式

    在ASP.NET中,有多种方式可以实现页面间的数据传递,这些传值技巧是开发者必须掌握的基本技能。以下将详细阐述这些方法。 1. **Query String(查询字符串)** Query String是最常见的页面间传值方式,通过URL附加...

    MVC Demos 里面包含不同的控件传值

    在MVC中,控件传值可以通过多种方式实现: 1. **表单提交**:HTML表单可以用于收集用户输入,然后通过HTTP POST或GET方法提交到控制器。控制器处理表单数据,可能更新模型,然后返回一个新的视图。 2. **模型绑定*...

    前后台传值乱码问题万能思想,通用

    在IT开发过程中,前后端数据交互是一个...总结起来,处理前后台传值乱码问题的关键在于理解字符编码原理,掌握各种转码方法,并在前后端进行协调一致的处理。只要掌握了这种万能思想,就能在遇到乱码问题时游刃有余。

    Aspnet Mvc教程 15.QueryString传值

    Aspnet Mvc教程 15.QueryString传值 06:18 Aspnet Mvc教程 16.表单生成及Post传值 07:20 Aspnet Mvc教程 17.UpdateModel 05:28 Aspnet Mvc教程 18.单选复选(更新) 08:57 ASPnet MVC教程 19.表单验证 10:50

    ASP.NET MVC学习笔记-Controller与View传值.

    ### ASP.NET MVC学习笔记-Controller与View传值 #### 一、引言 在ASP.NET MVC框架中,数据从Controller传递到View的方式是至关重要的。相比于传统的ASP.NET Web Forms模式,MVC架构更加注重分离关注点,即Model、...

    Aspnet Mvc教程 16.表单生成及Post传值

    Aspnet Mvc教程 15.QueryString传值 06:18 Aspnet Mvc教程 16.表单生成及Post传值 07:20 Aspnet Mvc教程 17.UpdateModel 05:28 Aspnet Mvc教程 18.单选复选(更新) 08:57 ASPnet MVC教程 19.表单验证 10:50

    详解ASP.NET MVC 下拉框的传值的两种方式

    以前使用WebForm变成时,下拉框传值只需直接在后台绑定代码就可以了。现在我们来看看在MVC中DropDownList是如果和接受从Controller传过来的值的。 第一种:使用DropDownList 控制器代码:  public ActionResult ...

    Spring MVC传值

    **Spring MVC传值详解** Spring MVC是Spring框架的一部分,它是一个模型-视图-控制器(MVC)架构,用于构建Web应用程序。在Spring MVC中,数据传输是开发过程中的关键环节,涉及到请求从客户端(通常是网页)传递到...

    .NET MVC开发时,控制器从VIEW视图取值的几种方法

    .NET MVC开发时,控制器和VIEW视图之前传值的几种方法,详见文档

    详解ASP.NET MVC之下拉框绑定四种方式

    *** MVC下拉框绑定是Web开发中常见的一项功能,开发者可以通过多种方式将数据绑定到下拉框控件中,以供用户进行选择。在本篇文档中,将详细介绍四种*** MVC下拉框绑定的方法,每种方法都有其适用场景,开发者可以...

    详解ASP.NET 页面之间传值的几种方式

    ***作为.NET框架下的一个关键Web应用开发平台,提供了多种页面间传值的方式,这对于构建动态Web应用至关重要。以下将详细探讨这些传值方式的原理和实现方法: 1. Request.QueryString方式 这是一种通过URL的查询...

    MVC框架中的前端与后端数据传递及实例

    ASP.NET MVC是一个强大的框架,它允许开发者以清晰、分离的方式处理应用程序的逻辑。在这个场景中,我们将深入探讨如何在ASP.NET MVC中进行前端与后端的数据传递,以及如何使用jQuery的Ajax方法实现这一过程。 首先...

    ASP.NET跨页面传值技巧总结.

    ASP.NET跨页面传值是Web开发中的常见需求,本文将介绍五种常用的方法,帮助开发者在不同的场景下选择合适的方式。 1. **使用QueryString变量**: QueryString是最直观的传值方式,它通过URL参数传递数据。适用于...

    MVC2中Controller向View传递数据的三种方式

    在ASP.NET MVC2框架中,Controller与View之间传递数据的方式有多种选择,这对于构建高效、灵活的Web应用程序至关重要。本文将详细介绍三种常见的Controller向View传递数据的方法:通过`ViewData`、通过`ViewModel`...

    Aspnet Mvc教程 11.重定向、Redirect

    Aspnet Mvc教程 15.QueryString传值 06:18 Aspnet Mvc教程 16.表单生成及Post传值 07:20 Aspnet Mvc教程 17.UpdateModel 05:28 Aspnet Mvc教程 18.单选复选(更新) 08:57 ASPnet MVC教程 19.表单验证 10:50

    Aspnet Mvc教程 5. 基本工作流程

    Aspnet Mvc教程 15.QueryString传值 06:18 Aspnet Mvc教程 16.表单生成及Post传值 07:20 Aspnet Mvc教程 17.UpdateModel 05:28 Aspnet Mvc教程 18.单选复选(更新) 08:57 ASPnet MVC教程 19.表单验证 10:50

Global site tag (gtag.js) - Google Analytics