前言:

在这篇 Taurus.MVC WebMVC 入门开发教程的第三篇文章中,

我们将重点介绍如何进行数据绑定操作,还会学习如何使用 ${属性名称} CMS 语法来绑定页面上的元素与 Model 中的属性。

步骤1:创建 Model

首先,我们需要创建一个 Model 类来存储数据。

在 Visual Studio 中,右键单击项目文件夹,选择「添加」-> 「新建项」。在弹出的对话框中,选择「类」,并命名为「User.cs」。

在 User.cs 类中,我们可以定义一些属性来表示用户信息,例如姓名、年龄等。

public class User
{
public string Name { get; set; }
public int Age { get; set; }
}

步骤2:更新控制器

接下来,我们需要更新控制器以支持数据绑定。

在 HomeController.cs 文件中,我们可以修改 Index 方法,创建一个 User 对象,并将其传递给视图。

public class HomeController : Taurus.Mvc.Controller
{
public void Index()
{
User user = new User
{
Name = "Alice",
Age = 25
}; View.LoadData(user);
} public void About() { } public void Contact() { }
}

View.LoadData 可以加载对象类型很多,比如:实体类,数据行(MDataRow )、字典、哈希等。

步骤3:更新视图

现在,我们需要更新视图来实现数据绑定。在 Index.html 视图文件中,

我们可以使用 ${属性名称} CMS 语法来绑定页面上的元素与 Model 中的属性。

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>欢迎来到 Taurus.MVC WebMVC</title>
</head>
<body>
<h1>用户信息</h1>
<p>姓名:${Name}</p>
<p>年龄:${Age}</p>
</body>
</html>

在上述代码中,我们使用通过使用 ${Name} 和 ${Age} 语法来绑定页面上的元素与 Model 中的属性。

步骤4:运行应用程序

最后,我们可以运行应用程序并查看页面的效果。

您将看到用户信息页面上显示了用户的姓名和年龄,这些信息是通过数据绑定从 Model 中获取的。

步骤5:使用 View.KeyValue 添加绑定值

除了直接使用Model,通过 View.LoadData 来加载值外,对于一些场景,如果不想使用 Model,

比如想在界面绑定一些值,但不想重新定义Model时,则可以使用 View.KeyValue.Add(key,value)来添加。

例如框架内部实现中就使用到它,添加了几个默认值,以下是框架内部源码的实现部分:

private void LoadHtmlView()
{
if (!CancelLoadHtml)
{
_View = ViewEngine.Create(HtmlFolderName, HtmlFileName);//这里ControllerName用原始大写,兼容Linux下大小写名称。
if (_View != null)
{
//追加几个全局标签变量
_View.KeyValue.Add("module", ModuleName.ToLower());
_View.KeyValue.Add("controller", ControllerName);
_View.KeyValue.Add("action", MethodName.ToLower());
_View.KeyValue.Add("para", Para.ToLower());
_View.KeyValue.Add("suffix", Path.GetExtension(Request.Url.LocalPath));
_View.KeyValue.Add("httphost", Request.Url.AbsoluteUri.Substring(0, Request.Url.AbsoluteUri.Length - Request.Url.PathAndQuery.Length));
}
}
}

View.KeyValue是一个Dictionary,你可以添加,也可以移除。

实际View.LoadData 是将 Model 批量加载到了 View.KeyValue 中,后续你也可以通过它来移除不想绑定的数据。

总结

在本篇教程中,我们学习了如何在 Taurus.MVC WebMVC 中进行数据绑定操作。

我们还学习了如何使用 ${属性名称} CMS 语法来绑定页面上的元素与 Model 中的属性。

通过这些步骤,我们成功实现了一个简单的数据绑定示例。

本系列的目录大纲为:

Taurus.MVC WebMVC 入门开发教程1:框架下载环境配置与运行

Taurus.MVC WebMVC 入门开发教程2:一个简单的页面呈现

Taurus.MVC WebMVC 入门开发教程3:数据绑定Model

Taurus.MVC WebMVC 入门开发教程4:数据列表绑定List<Model>

Taurus.MVC WebMVC 入门开发教程5:表单提交与数据验证

Taurus.MVC WebMVC 入门开发教程6:路由配置与路由映射

Taurus.MVC WebMVC 入门开发教程7:部分视图和页面片段

Taurus.MVC WebMVC 入门开发教程3:数据绑定Model的更多相关文章

  1. Taurus.MVC WebAPI 入门开发教程1:框架下载环境配置与运行(含系列目录)。

    前言: Taurus.MVC 微服务版本已经发布了:Taurus.MVC V3.0.3 微服务开源框架发布:让.NET 架构在大并发的演进过程更简单. 以前都是框架发布时写点相关功能点的文章,没有形成 ...

  2. Taurus.MVC WebAPI 入门开发教程2:添加控制器输出Hello World。

    系列目录 1.Taurus.MVC WebAPI  入门开发教程1:框架下载环境配置与运行. 2.Taurus.MVC WebAPI 入门开发教程2:添加控制器输出Hello World. 3.Tau ...

  3. Taurus.MVC WebAPI 入门开发教程3:路由类型和路由映射。

    系列目录 1.Taurus.MVC WebAPI  入门开发教程1:框架下载环境配置与运行. 2.Taurus.MVC WebAPI 入门开发教程2:添加控制器输出Hello World. 3.Tau ...

  4. Taurus.MVC WebAPI 入门开发教程4:控制器方法及参数定义、获取及基础校验属性【Require】。

    系列目录 1.Taurus.MVC WebAPI  入门开发教程1:框架下载环境配置与运行. 2.Taurus.MVC WebAPI 入门开发教程2:添加控制器输出Hello World. 3.Tau ...

  5. Taurus.MVC WebAPI 入门开发教程5:控制器安全校验属性【HttpGet、HttpPost】【Ack】【Token】【MicroService】。

    系列目录 1.Taurus.MVC WebAPI  入门开发教程1:框架下载环境配置与运行. 2.Taurus.MVC WebAPI 入门开发教程2:添加控制器输出Hello World. 3.Tau ...

  6. Taurus.MVC WebAPI 入门开发教程6:全局控制器DefaultController与全局事件。

    系列目录 1.Taurus.MVC WebAPI  入门开发教程1:框架下载环境配置与运行. 2.Taurus.MVC WebAPI 入门开发教程2:添加控制器输出Hello World. 3.Tau ...

  7. Taurus.MVC WebAPI 入门开发教程8:WebAPI文档与自动化测试。

    系列目录 1.Taurus.MVC WebAPI  入门开发教程1:框架下载环境配置与运行. 2.Taurus.MVC WebAPI 入门开发教程2:添加控制器输出Hello World. 3.Tau ...

  8. Taurus.MVC 微服务框架 入门开发教程:项目集成:4、默认安全认证与自定义安全认证。

    系列目录: 本系列分为项目集成.项目部署.架构演进三个方向,后续会根据情况调整文章目录. 本系列第一篇:Taurus.MVC V3.0.3 微服务开源框架发布:让.NET 架构在大并发的演进过程更简单 ...

  9. Taurus.MVC 微服务框架 入门开发教程:项目部署:1、微服务应用程序常规部署实现多开,节点扩容。

    系列目录: 本系列分为项目集成.项目部署.架构演进三个方向,后续会根据情况调整文章目录. 本系列第一篇:Taurus.MVC V3.0.3 微服务开源框架发布:让.NET 架构在大并发的演进过程更简单 ...

  10. Taurus.MVC 微服务框架 入门开发教程:项目部署:2、让Kestrel支持绑定多个域名转发,替代Ngnix使用。

    系列目录: 本系列分为项目集成.项目部署.架构演进三个方向,后续会根据情况调整文章目录. 本系列第一篇:Taurus.MVC V3.0.3 微服务开源框架发布:让.NET 架构在大并发的演进过程更简单 ...

随机推荐

  1. Concat、Push、Spread syntax性能差异对比

    今天在力扣上做了一道数组扁平化的题,按理来说,应该熟能生巧了,但是在使用concat时候超出了时间限制,使用push可以通过,代码如下: /** * @describe 使用concat,超出时间限制 ...

  2. pycharm的docstring多了一行type

    注释中多了一行:type 设置为Epytext PyCharm 2020.3.5 (Community Edition) def test(param1,param2,param3): "& ...

  3. 微信小程序-页面跳转Tabbar

    官方文档地址:https://developers.weixin.qq.com/miniprogram/dev/reference/configuration/app.html#tabBar 首先我们 ...

  4. 【Spring】Bean装配类注解

    默认注入类型 多个同类型Bean 注入失败 依赖 使用目标(@Target) @AutoWired 通过type 默认首先安装属性名称进行注入 结合@Qualifier注解(value属性)设置注入的 ...

  5. .NET MAUI 简介

    欢迎使用.NET 多平台应用程序 UI.此版本标志着我们在统一 .NET 平台的多年旅程中的新里程碑.现在,您和超过 500 万其他 .NET 开发人员拥有面向 Android.iOS.macOS 和 ...

  6. 【三】多智能体强化学习(MARL)近年研究概览 {Analysis of emergent behaviors(行为分析)_、Learning communication(通信学习)}

    相关文章: [一]最新多智能体强化学习方法[总结] [二]最新多智能体强化学习文章如何查阅{顶会:AAAI. ICML } [三]多智能体强化学习(MARL)近年研究概览 {Analysis of e ...

  7. C/C++ 实现枚举网上邻居信息

    在Windows系统中,通过网络邻居可以方便地查看本地网络中的共享资源和计算机.通过使用Windows API中的一些网络相关函数,我们可以实现枚举网络邻居信息的功能,获取连接到本地网络的其他计算机的 ...

  8. LyScript 验证PE程序开启的保护

    有些漏洞利用代码需要在某个保护模式被关闭的情况下才可以利用成功,在此之前需要得到程序开启了何种保护方式.验证其实有很多方法,其原理是读入PE文件头部结构,找到OPTIONAL_HEADER.DllCh ...

  9. Redis安装及使用详解篇

    一.什么是Redis? Redis(Remote Dictionary Server ),即远程字典服务. Redis是是现在最受欢迎的NoSQL数据库之一,是一种支持key-value等多种数据结构 ...

  10. Redis主从配置、数据持久化、集群

    发布订阅 ## subscribe 订阅一个或者多个频道 ## publish 给指定的频道发送消息 ## psubscribe 订阅指定模式的频道,*代表所有 ## pubsub channels ...