第4章 MVC进阶——ASP.NET MVC企业级实战

4.1 View详解
4.1.1 View和Action之间数据传递的方式
  • 弱类型ViewData[""]
  • 动态型ViewBag //dynamic
  • 动态类型Model
  • 临时存储TempData[""]
  • 后台:return View(Data); //存入ViewData.Model
  • 前台:Model //其实就是WebViewPage.Medel
    示例:
    首先添加一个model类:
    public class User
    {
        public string Name { get; set; }
    }

在controller为变量赋值:

 public class HomeController : Controller
    {
        public ActionResult Index()
        {
            ViewData["One"] = "This is ViewData Test";
            ViewBag.Two = "This is ViewBag Test";
            var _user = new User { Name = "This is Model Test"};
            TempData["Four"] = "This is TempData Test";
            return View(_user); //等于ViewData.Model = _user;
        }
    }

其次在View里面应用在controller的变量:

@Model FirstTest.Models.User
<br/>

@{
    ViewBag.Title = "Index";
}

@ViewData["One"]<br/>
@ViewBag.Two<br/>
@Model.Name<br/>
@TempData["Four"]
<h2>Index</h2>
2789632-f158f989a47031cc.png
4.1.2 TempData、ViewData和ViewBag的区别
  • ViewData是字典型的(Dictionary);
  • ViewBag不再是字典的键值对结构,而是dynamic型,会在程序运行的时候动态解析;
  • ViewData为object型,而ViewBag为dynamic型。dynamic型与object型的区别在使用时它会自动根据数据类型转换。
4.2 Razor视图引擎

示例:


@*1. 使用字符串描述输出*@
@{ 
    string strHtml = "Hi Girl~";
    @strHtml;
    <br />
}

@*2.使用HTMLHelper输出*@
@{
    @Html.Raw("use HTMLHelper to output");
    <br />
}

@*3.使用HtmlString类输出*@
@{ 
    HtmlString htm = new HtmlString("use HtmlString");
    @htm;
    <br />
}

@*4.使用MvcHtmlString输出*@
@{ 
    var str = MvcHtmlString.Create("use mvchtmlstring");
    @str;
    <br/>
}
2789632-94a46bfb8012b1f0.png
4.3 Controller

Controller 主要负责相应用户的输入,主要关注的是应用程序流、输入数据的处理以及对相关视图(View)输出数据的提供。

4.3.1 Action 方法参数与返回值

1.通过Request.Form["name"]逐个获取表单提交的数据
首先在Models下添加ASO.NET实体数据模型,这里使用DB First
添加Action方法UpdateCustomerInfo

 public ActionResult UpdateCustomerInfo()
        {
            return View();
        }

        [HttpPost]
        public string UpdateCustomerInfo(FormCollection form)
        {
            return Request.Form["ContactName"];
        }

添加UpdateCustomerInfo视图

@model FristTest.Models.Customers
@{
    ViewBag.Title = "UpdateCustomerInfo";
}

@using (Html.BeginForm())
{
    @Html.TextBoxFor(x => x.ContactName)
    <input type="submit" value="修改" />
}

微信公众号:


2789632-3b18269684ea9294.png
公众号.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值