【ITOO】MVC之数据传递

提交表单

  在view代码中BeginForm函数有几个参数BeginForm("index", "test", FormMethod.Post),index是actionName,test是Controller名字.

<span style="font-family:KaiTi_GB2312;font-size:18px;">@using (Html.BeginForm("index", "home", FormMethod.Post))// FormMethod.Get
    {
        @:form主体1 
    }<p />  
    
    @{Html.BeginForm("index", "home", FormMethod.Post);} <p />/ FormMethod.Get
       form主体2
@{Html.EndForm();}
</span>

接收参数

1、Parameters(参数)

<span style="font-family:KaiTi_GB2312;font-size:18px;">ASP.NET MVC下是用[Http*]或[AcceptVerbs(HttpVerbs.*)]特性去实现类似WebForm下的IsPostBack
        [AcceptVerbs(HttpVerbs.Post)]//或HttpVerbs.Get
        public ActionResult Index(string username, string password)
        {
            // 参数方式 
            ViewData[" user "] = username + password;
            return View();
        }
}
</span>

2.Request

Request["name"|index]
Request.form["name"|index]

<span style="font-family:KaiTi_GB2312;font-size:18px;">[AcceptVerbs(HttpVerbs.Post)] //或HttpVerbs.Get
        public ActionResult Index(string username, string password)
        {      
            // Request取数据方式-获得Post/Get提交
ViewData["user"] =  Request["username"] + Request["password"];
            // Request.Form取数据方式-获得Post提交
ViewData["user"] =  Request.Form["username"] + Request.Form["password"]; 
// webform方式-获得Get提交  
            ViewData["user"] = Request.QueryString["username"] + Request.QueryString["password"]; 
            return View();
        }
</span>

3.Model(实体对象)-强类型

<span style="font-family:KaiTi_GB2312;font-size:18px;">[AcceptVerbs(HttpVerbs.Post)] //或HttpVerbs.Get
        public ActionResult Index(User model)
        {
            // 属性名字和参数名一致 
            ViewData[" user "] = model.UserName + model.PassWord;
            return View();
        }
</span>

4.ViewModel-强类型


   ViewData 字典方法的优点是非常快和容易实现。部分开发人员不喜欢使用基于字符串的字典(string-based dictionaries),因为一些输入错误会导致错误,但是不能在编译期间发现。
在使用View 视图模板中使用强类型时,非强类型的ViewData 字典也需要使用as 操作符或类型转换。
   另一个可选的方法是ViewModel 模式。当时有这一模式时,我们需要针对特定的View 创建强类型的类,
公开View 模板需要的动态参数值或内容。Controller 类接着填充和传递这些类给View 模板去使用。这样可以实现类型安全、编译期间检查和编辑器智能提示等等。

【总结】

   从接触MVC到现在,对于数据到底是如何是传递的一直不太清楚。即使到写完这篇依旧是似懂非懂的。在接下来的时间,会结合这些理论知识在项目中好好理解这些知识在项目中的使用方法。

评论 35
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值