ASP.NET MVC_Controller和View之间数据传递(前后台数据传递)方式

Controller和View之间数据传递(前后台数据传递)方式


Controller -> View:
a) 使用ViewData传递数据
我们在Controller中定义如下:

ViewData[“Message_ViewData”] = “ Hello ViewData!”; 

然后在View中读取Controller中定义的ViewData数据,代码如下:

@Html.Encode(ViewData["Message_ViewData"]) 

js中读取ViewData中数据如下:

<pre name="code" class="javascript">
<script type="text/javascript">  
    var viewData = '@ViewData["Message_ViewData"]';  
</script> 

b) 使用ViewBag传递数据
我们在Controller中定义如下:

ViewBag.Message_ViewBag =  “ Hello ViewBag !”;  

然后在View中读取Controller中定义的ViewBag数据,代码如下:

@Html.Encode(ViewBag.Message_ViewBag)

js中读取ViewBag中数据如下:

<script type="text/javascript">  
    var viewBag= '@ViewBag.Message_ViewBag';  
</script> 

c) 使用TempData传递数据
我们在Controller中定义如下:

TempData[“Message”] = “Hello word!”; 

然后在View中读取Controller中定义的TempData数据,代码如下:

@Html.Encode(TempData["Message_TempData"]) 

js中读取TempData中数据如下:

<script type="text/javascript">  
     var tempData = '@TempData["Message"]';  
</script> 

d) 使用Model传递数据
首先要创建Model实体类
创建强类型的View以后,View的第一行代码如下所示:

@model Test.Models.HelloModel  

就代表了这个View使用的Model为“Test.Models.HelloModel”
然后在View中读取Model中定义的数据,代码如下:

@Html.Encode(Model.Name) 

js中读取Model中数据如下:

    <script type="text/javascript">  
         var modelName = '@Model.Name';  
    </script>  

View -> Controller:
a) 通过Request.Form读取表单数据
我们在View层做如下定义:

@using (Html.BeginForm("HelloModelTest", "Home", FormMethod.Post))  
{  
    @Html.TextBox("Name");  
    @Html.TextBox("Text");  
    <input type="submit" value="提交" />  
} 

注意:
HelloModelTest为对应的Action名,Home为对应的Controller名称
然后在Controller层,通过Request.Form读取表单数据的代码如下所示:

  [HttpPost]  
           public ActionResult HelloModelTest()  
           {  
               string name= Request.Form["Name"];  
               string text= Request.Form["Text"];  
               return View();  
           }  

b) 通过FormCollection读取表单数据
我们在View层做如下定义:

@using (Html.BeginForm("HelloModelTest", "Home", FormMethod.Post))  
    {  
        @Html.TextBox("Name");  
        @Html.TextBox("Text");  
        <input type="submit" value="提交" />  
    }  

然后在Controller层,通过FormCollection读取表单数据的代码如下所示:

[HttpPost]  
        public ActionResult HelloModelTest(FormCollection fc)  
        {  
            string name= fc["Name"];  
            string text  = fc["Text"];  
            return View();  
        } 

c) 模型绑定
我们在View层做如下定义:

  @using (Html.BeginForm("HelloModelTest", "Home", FormMethod.Post))  
    {  
        @Html.TextBox("Name");  
        @Html.TextBox("Text");  
        <input type="submit" value="提交" />  
}  

默认的模型绑定
相较于从请求中获取表单值,下面的Edit Action则是简单地以一个模型对像为参数(Album):

[HttpPost]  
public ActionResult HelloModelTest( HelloModel model)  
{  
    // ...  
} 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值