ASP.NET MVC

xiaoxiao2021-02-28  91

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) { // ... }
转载请注明原文地址: https://www.6miu.com/read-83497.html

最新回复(0)