1.使用entity framework的DB First时,手动书实体类的表单验证
1 2 3 4 5 6 7 8 9 10 11 | [MetadataType( typeof (ValidateFund))] public partial class Fund { } public class ValidateFund { [Required(ErrorMessage = "必填" )] public decimal FeeBuy { get ; set ; } public decimal FeeSell { get ; set ; } } |
2. MD5加密
1 2 3 4 5 6 7 | public static string MD5( string str) { byte [] result = Encoding.Default.GetBytes(str); //tbPass为输入密码的文本框 MD5 md5 = new MD5CryptoServiceProvider(); byte [] output = md5.ComputeHash(result); return BitConverter.ToString(output).Replace( "-" , "" ); //tbMd5pass为输出加密文本的文本框 } |
3.绑定asp.net mvc 绑定DropDownList数据
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | [HttpPost] [ValidateAntiForgeryToken] public ActionResult Create([Bind(Include = "Id,FundId,MoneyBuy,UnitPriceBuy,Quantity" )] MyFund myFund) { if (ModelState.IsValid) { myFund.Id = Guid.NewGuid(); db.MyFunds.Add(myFund); db.SaveChanges(); return RedirectToAction( "Index" ); } ViewBag.FundId = new SelectList(db.FundInfoes, "Id" , "Name" , myFund.FundId); //赋值 return View(myFund); } |
Html页面
1 2 | @model BCDN.Models.MyFund @Html.DropDownList( "FundId" , null , htmlAttributes: new { @ class = "form-control" }) |
4.html页面手动写表单验证
1 2 3 4 5 6 7 8 9 10 11 12 | <div class = "form-group" > <label class = "control-label col-md-2" >基金名称</label> <div class = "col-md-10" > @Html.EditorFor(model => model.Name, new { htmlAttributes = new { @ class = "form-control" , @ readonly = "readonly" , data_val = "true" , @data_val_required = "必填" } }) @Html.ValidationMessageFor(model => model.Name, "" , new { @ class = "text-danger" }) </div> </div><br><br><br> |
需要引入的js
<script src="/assets/js/jquery-2.0.3.min.js"></script>
<script src="/Scripts/jquery.validate.js"></script>
<script src="/Scripts/jquery.validate.unobtrusive.js"></script>
简单的验证规则如下
1.data-val-required 必输字段
2.data-val-email 必须输入正确格式的电子邮件
3.data-val-url 必须输入正确格式的网址
4.data-val-date 必须输入正确格式的日期
5.data-val-digits: 必须输入正整数
6.data-val-number:必须输入整数
5. ajax从服务端获取数据
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | <script> $( function () { $( "#buttonJiaoYan" ).click( function () { var code = $( "#Code" ).val(); var url = "@Url.Action(" GetFundNameByCode ", " Ajax ")?code=" +code; $.ajax({ url: url, success: function (data) { if (data == "-1" ) { $( "#foundCodeError" ).css( "display" , "inline" ); $( "#Name" ).val( '' ); } else { $( "#Name" ).val(data); $( "#foundCodeError" ).css( "display" , "none" ); } } }); }); }); </script> |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理