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

ASP.NET MVC 数据交互详解
本文详细介绍了ASP.NET MVC中ViewData、ViewBag、Model及TempData的数据传递方式,并对比了它们之间的区别。同时,还讲解了Razor视图引擎的基本用法以及Controller中Action方法的参数与返回值处理。
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
基于遗传算法的微电网调度(风、光、蓄电池、微型燃气轮机)(Matlab代码实现)内容概要:本文档介绍了基于遗传算法的微电网调度模型,涵盖风能、太阳能、蓄电池和微型燃气轮机等多种能源形式,并通过Matlab代码实现系统优化调度。该模型旨在解决微电网中多能源协调运行的问题,优化能源分配,降低运行成本,提高可再生能源利用率,同时考虑系统稳定性与经济性。文中详细阐述了遗传算法在求解微电网多目标优化问题中的应用,包括编码方式、适应度函数设计、约束处理及算法流程,并提供了完整的仿真代码供复现与学习。此外,文档还列举了大量相关电力系统优化案例,如负荷预测、储能配置、潮流计算等,展示了广泛的应用背景和技术支撑。; 适合人群:具备一定电力系统基础知识和Matlab编程能力的研究生、科研人员及从事微电网、智能电网优化研究的工程技术人员。; 使用场景及目标:①学习遗传算法在微电网调度中的具体实现方法;②掌握多能源系统建模与优化调度的技术路线;③为科研项目、毕业设计或实际工程提供可复用的代码框架与算法参考; 阅读建议:建议结合Matlab代码逐段理解算法实现细节,重点关注目标函数构建与约束条件处理,同时可参考文档中提供的其他优化案例进行拓展学习,以提升综合应用能力。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值