ASP.NET MVC 入门 -- 7、Hellper与数据的提交与绑定

C#实现的SqlHelper类:简化SQL操作 在现代的软件开发中,数据库操作是不可或缺的一部分。SqlHelper类是.NET环境中的一个实用工具类,它的出现极大地简化了与数据库交互的复杂性。通过封装底层的数据库访问细节,SqlHelper为开发者提供了简单直接的方法来执行SQL命令、获取查询结果等操作。SqlHelper类的主要作用是提供了一个数据库访问层,使得开发者可以通过简单的方法调用来执行数据库操作,而不必深入理解数据库连接、命令执行等底层细节。 阅读详情

 

ASP.NET MVC提供了很多Hellper的方法,Hellper就是一些生成HTML代码的方法,方便我们书写HTML代码(有一部分的朋友更喜欢直接写HTML代码)。我们也可以利用.NET 3.5的扩展方法来书写我们自己的Hellper。

例如:

<% = Html.ActionLink( " 首页 " , " index " , " Home " ) %>

生成的HTML代码就是:<a href="/Home/Index">首页</a>。这里有一点需要注意的就是,Html.ActionLink()和Url.Link()方法生成的URL和你在Global.asax里面配置的Route的先后顺序是有关的。

具体的关于Hellper的各个方法的使用我就不详细介绍了,你可以参考Asp.net Mvc Framework 系列文章。

我们来实现前面提到的Setting,用于设置Blog的基本设置。我们看一下在Views/Admin/Setting.aspx页面的代码:

<p>
    
<label for="Name">Blog的名称</label>
    
<% = Html.TextBox( " Name " ) %>
    
<% = Html.ValidationMessage( " Name " ) %>
</p>
<p>
    
<label for="Description">Blog的简单描述</label>
    
<% = Html.TextArea( " Description " ) %>
    
<% = Html.ValidationMessage( " Description " ) %>
</p>
<p>
    
<label for="PostsPerPage">每页显示的日志数</label>
    
<% = Html.TextBox( " PostsPerPage " ) %>
    
<% = Html.ValidationMessage( " PostsPerPage " ) %>
</p> 

 

我们的Setting Action方法是这样写的:

image

注意我们是return View(BlogSettings.Instance);给ViewData.Model传递了BlogSettings.Instance。然后运行一下看看:

image

注意到上面的TextBox都有值了么?我们使用了Html.TextBox("Name")而已,并没有指定值啊?那么这个值是怎么自动的绑定上去的呢?注意到前面在Action中我们是return View(BlogSettings.Instance);给ViewData.Model传递了BlogSettings.Instance,BlogSettings.Instance.Name和Html.TextBox("Name")的参数"Name"同名,Html.TextBox()方法在调用的时候会调用ViewData.Eval()方法,所以就自动把值绑定上去了。和前一篇文章说过的ViewData.Eval()可以使用"."表达式一样,Html.TextBox()也同样可以使用"."表达式,例如:Html.TextBox("Post.Title")也可以自动绑定ViewData.Model.Post.Title值上去。

下面我们来将值提交到Action中并保存。我们的Form使用了Post回服务器:

<form id="fields" action="<%=Url.Action("Setting","Admin")%>" method="post">

 

然后我们在Action中进行处理:

[ActionName("Setting"), AcceptVerbs("POST" )]
public
 ActionResult SaveSetting()
{
    
//
当然你可以这样取值
    
//
string name = Request.Form["Name"]; 

    
//但我们有更简便的:

    try
    {
        UpdateModel(BlogSettings.Instance, 
new[] { "Name", "Description", "PostsPerPage"  });
    }
    
catch

    {
        
return  View(BlogSettings.Instance);
    } 

    
//在这里你可能还需要对自定义的业务逻辑进行验证 


    BlogSettings.Instance.Save();
    
return ShowMsg(new List<string>() { "修改设置成功"  });
} 

如上代码所示,我们可以使用UpdateModel()方法直接对Post到服务器来的Form表单的值赋给指定的对象。对于提交的数据进行业务逻辑的验证这里要讨论的还是比较多的,国外也有不少文章讨论这个的,大家可以搜索看看。

详解ASP.NET MVC之下拉框绑定四种方式 主要介绍了详解ASP.NET MVC之下拉框绑定四种方式,详细的讲诉了4种方法,具有一定的参考价值,有需要的可以了解一下。 立即下载

相关推荐

保姆级教学,教你在vscode和cursor上调试matlab!!!

保姆级教你如何在vscode或者cursor上面调试matlab

yang_upup的博客 2083

asp net mvc 的数据绑定

数据绑定方式1: ViewData.Add("documentRead", new                    {                        DocumentID = documentInfo.DocumentID,                        documentInfo.CategoryID,                        docum...

weixin_33976072的博客 201

常用的串口通信工具MobaXterm、Bus Hound、SScom等

本文介绍了四种PC端串口通信工具的功能和使用方法:MobaXterm支持SSH、FTP、串口等多种协议;Bus Hound用于监控CAN和串口数据;SScom专为串口和网口通信设计;ScriptCommunicator可进行串口通信并绘制波形图。每种工具都有详细的操作步骤图示,包括参数设置、数据监控等关键功能,并提供了官方和个人下载地址。这些工具各有特点,适用于不同的串口通信和数据分析场景。

sanqima的专栏 2513

LVGL在Arduino-ESP32上的5大应用模块详解:从WiFi配置到MQTT通信

本文详细解析了LVGL框架在Arduino-ESP32平台上的五大核心应用模块,涵盖交互式WiFi配置、实时数据可视化、MQTT通信集成、系统参数设置及性能调优。通过实战代码与架构设计,指导开发者构建流畅、稳定的嵌入式GUI,并深度整合网络功能,提升物联网设备交互体验与开发效率。

f6g7h8i9j的博客 507

vivado生成及调用自定义IP的方法

开发环境:vivado 2018.2 1.将整个工程封装为自定义IP 将整个工程封装为自定义IP主要有以下步骤: 步骤1.选中工程中的top模块。点击Tools ------> Create and Package New IP,如图1所示 图1 步骤2.弹出界面后,点击next至图2界面,选择Package your current project,然后继续点击next 图2 步骤3.选择生成的IP路径,如图3所示。这个路径就是后续添加该IP的路径 图3 步骤4.继续点击next,然后选择fi

进击的阿日比 4734

【Unity】YooAsset + HybridCLR热更

本文介绍了Unity游戏开发中的热更新技术方案,重点对比了资源热更和代码热更的主流工具。资源热更方面分析了Asset Bundle、Addressable和YooAsset的优缺点;代码热更部分比较了xLua、ILRuntime、InjectFix和HybridCLR的性能特点。文章详细演示了HybridCLR+YooAsset的实践方案,包括加载热更新程序集、反射调用热更代码、资源打包部署等完整流程。该方案通过原生运行时实现程序集级热更,具有极低性能损耗和全生命周期适用性,配合YooAsset简化了资源管

欢迎指错||纠正||建议||水评+点赞&&评论&&关注&&转发 2920

从HFSS15到SI9000:差分线宽距调整对阻抗影响的完整实验报告

本文通过HFSS15三维全波电磁仿真,系统分析了PCB差分走线中线宽与间距变化对差模与共模阻抗的影响规律,并与SI9000二维场求解器的计算结果进行交叉验证。实验揭示了两种工具在趋势一致下的数值偏差原因,并为高速PCB设计中的阻抗控制提供了从仿真到工艺的数据驱动决策指南和实用建议。

dog123的博客 532

SigmaStudio进阶技巧:如何用ADAU1701实现60段EQ与防啸叫算法

本文深入探讨了如何在ADAU1701 DSP芯片上实现专业级音频处理系统。通过精密的资源规划与架构设计,详细讲解了构建高达60段参数均衡器(EQ)的有效方法,并集成了移频与自适应陷波双策略的智能防啸叫算法。内容涵盖从SigmaStudio工程优化、算法模块组合到系统联调实战的全流程,旨在帮助中高级开发者充分利用ADAU1701性能,打造稳定、高效的音频处理解决方案。

weixin_28256233的博客 386

MVC 数据绑定

在做Asp.Net MVC项目中,都知道View负责页面展示数据或者提供页面收集数据,而所展示的数据或者收集的数据都是从Controller的Action中获取或提交到Controller的Action。 这里的数据,可能是基础类型,或者是Model,或者是Model的部分内容,或者是集合比如List或Dictionary。 数据从View传递到Controller的Action时,有几种方式...

weixin_33695450的博客 189

【自动驾驶端到端5:VADv2: End-to-End Vectorized Autonomous Driving via Probabilistic Planning】

从大规模人类驾驶演示中学习类人驾驶策略是有希望的。但是,规划的不确定性使得从驾驶演示中提取驾驶知识是有挑战性的。从统计学习的角度来看,动作(包括实际和速度)是高度随机的,受许多无法建模的潜在因素影响。

weixin_40000560的博客 1405

YOLOv13涨点改进 | 全网独家创新、高效涨点改进篇 | CVPR 2024 | YOLOv13引入SHSA单头自注意力模块,减少冗余的多头注意力,轻量化改进,助力目标检测和图像分类任务高效涨点

本文提出了一种改进YOLOv13模型的新方法——SHSA(单头自注意力)模块,用于提升目标检测任务的计算效率和推理速度。SHSA通过简化多头注意力机制为单头结构,显著减少了计算冗余和内存占用。实验表明,该模块在保持精度的同时,在GPU、CPU和移动设备上分别实现了3.3倍、8.1倍和2.4倍的加速效果。文章详细介绍了SHSA的结构原理、核心代码实现方法,以及如何集成到YOLOv13的配置文件中。这种改进特别适合资源受限设备,为实时目标检测提供了更优的速度-精度平衡方案。

Ai缝合怪、助力小伙伴高效发论文 510

ASP.NET MVC 入门7、Hellper与数据的提交与绑定

本系列文章基于ASP.NET MVC Preview5. ASP.NET MVC提供了很多Hellper的方法,Hellper就是一些生成HTML代码的方法,方便我们书写HTML代码(有一部分的朋友更喜欢直接写HTML代码)。我们也可以利用.NET 3.5的扩展方法来书写我们自己的Hellper。 例如: <%=Html.ActionLink("首页","index","Home")%...

sinolover的专栏 250

使用podspec创建iOS插件

概述 在WWDC 2014全球开发者大会上,苹果开放了动态库、App Extension等全新的功能,这为iOS插件化开发带来了可能。在iOS开发中,动态库是iOS提供的一种资源打包方式,可以将代码文件、头文件、资源文件和说明文档等集中在一起,并且可以在运行时进行动态加载。 目前,很多应用越做越复杂,应用程序也显得越来越臃肿。试想一下,如果将一些不常用的功能做成一个插件,然后根据用户的需求从网络中...

xiangzhihong8的专栏 993

[转]ASP.NET MVC 入门7、Hellper与数据的提交与绑定

ASP.NET MVC提供了很多Hellper的方法,Hellper就是一些生成HTML代码的方法,方便我们书写HTML代码(有一部分的朋友更喜欢直接写HTML代码)。我们也可以利用.NET 3.5的扩展方法来书写我们自己的Hellper。 例如: <%=Html.ActionLink("首页","index","Home")%> 生成的HTML代码就是:<a h...

dianjin3567的博客 117

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

ASP.NET MVC 入门7、Hellper与数据的提交与绑定 【转】

本系列文章基于ASP.NET MVC Preview5. ASP.NET MVC提供了很多Hellper的方法,Hellper就是一些生成HTML代码的方法,方便我们书写HTML代码(有一部分的朋友更喜欢直接写HTML代码)。我们也可以利用.NET 3.5的扩展方法来书写我们自己的Hellper。 例如: &lt;%=Html.ActionLink("首页","index","Home")%...

weixin_34355559的博客 85

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

上一篇: ASP.NET MVC 入门 -- 6、TempData
下一篇: ASP.NET MVC 入门 -- 8、ModelState与数据验证
DiscussQuestions
博客等级 码龄19年 28粉丝 29原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值