HtmlHelper2
一、隐式从ViewBag取数据
1、action中的代码:
ViewBag.UserName = "admin";
cshtml中的代码:
@Html.TextBox("UserName")
这样就会在@Html.TextBox("UserName")所在的位置显示admin了
2、action中的代码:
Book[] books = new Book[]
{
new Book{Id=,Name="如鹏网"},
new Book{Id=,Name="腾讯"},
new Book{Id=,Name="天猫"}
} SelectList slBooks = new SelectList(books,"Id","Name",);
ViewBag.books = slBooks;
cshtml中的代码:
@Html.DropDownList("books")
这样就会在@Html.DropDownList("books")的位置替换显示为下拉列表了。
二、强类型视图绑定
Action:
public ActionResult Index()
{
return View();
}
Model:
public class UserModel
{
public int Id { get; set; }
public string Name { get; set; }
}
cshtml:
@model 强类型视图绑定.Models.UserModel
@{
Layout = null;
} <!DOCTYPE html> <html>
<head>
<meta name="viewport" content="width=device-width" />
<title>Index</title>
</head>
<body>
<div>
@Html.Label("Id"):@Html.TextBoxFor(m => m.Id)<br />
@Html.Label("Name"):@Html.TextBoxFor(m => m.Name)<br />
</div>
</body>
</html>
三、数据客户端验证
建一个MVC模板的MVC项目。
Model
public class UserModel
{
[DisplayName("用户名")]
[Required]
[StringLength()]
public string UserName { get; set; } [DisplayName("密码")]
[Required]
[StringLength()]
public string Password { get; set; }
}
Controller
public ActionResult Login(UserModel model)
{
if (!ModelState.IsValid)
{
return View(nameof(Index));//转到Index.cshtml页面
}
return Content(model.UserName);
}
cshtml:
@model 客户端数据验证.Models.UserModel
@{
ViewBag.Title = "Home Page";
} @using (Html.BeginForm("Login", "Home"))
{
@Html.LabelFor(m => m.UserName, "用户名") @Html.TextBoxFor(m => m.UserName) @Html.ValidationMessageFor(m => m.UserName)<br />
@Html.LabelFor(m => m.Password, "密码") @Html.TextBoxFor(m => m.Password) @Html.ValidationMessageFor(m => m.Password)<br />
<input type="submit" value="提交" />
}
然后在Layout.cshtml中的head头部引入
@Scripts.Render("~/bundles/jquery")
@Scripts.Render("~/bundles/jqueryval")
完成以上步骤后,客户端提交表单之前就可以验证了。
HtmlHelper2的更多相关文章
- Asp.net MVC 简单分页 自做简单分页
Asp.net MVC 简单分页: public static string Pager(int page,int pageSize,int total) { ...
随机推荐
- GoDaddy商务主机建站具有的优势
GoDaddy是世界第一域名注册服务商,近年来凭借着优异的性能受到国内站长的欢迎,其中Godaddy商务主机得到了很多站长的喜爱,那么为什么GoDaddy商务主机可以受到那么多站长的喜爱呢?下面就带大 ...
- scala中的闭包简单使用
object Closure { /** * scala中的闭包 * 函数在变量不处于其有效作用域内,还能够对变量进行访问 * * @param args */ def main(args: Arra ...
- 列表中的index,extend,count方法
列表中的index,extend,count方法 #_author:Administrator#date:2019/10/24#1.index方法l=['blue','red','white','bl ...
- git 使用案例(本地仓库无缝迁移远程仓库)
之前都是直接从gitlab上clone代码,然后把本地代码copy过去,然后push.有点麻烦,查询了一下如何无缝从本地仓库迁移到远程仓库.记录一波... 下面的例子采用github来做例子. 1. ...
- hibernate_06_hibernate的延迟加载和抓取策略
1.延迟加载 1>类级别的延迟加载 指的是通过oad方法查询某个对象的时候,是否采用延迟, session. load(Customer class1L) 类级别延迟加载通过<class& ...
- jquery学习笔记(四):动画
内容来自[汇智网]jquery学习课程 4.1 显示和隐藏 在jQuery中使用 hide() 和 show() 方法来隐藏和显示 HTML 元素: hide()的语法形式:$(selector).h ...
- 获取AndroidManifest.xml中的meta-data元素
android 开发中: 在AndroidManifest.xml中,<meta-data>元素可以作为子元素, 被包含在<activity>.<application& ...
- 13_springmvc拦截器应用
一.实现登录认证 1.需求: 用户请求url,拦截器进行拦截校验 如果请求的url是公开地址(无需登陆即可访问的url),让放行 如果用户session 不存在跳转到登陆页面 如果用户session存 ...
- <小知识>记录
lis = [2,3,"k",["qwe",20,["k1",["tt",3,"1"]],89],& ...
- C# 字符串string和内存流MemoryStream及比特数组byte[]之间相互转换
定义string变量为str,内存流变量为ms,比特数组为bt 1.字符串转比特数组 复制代码 代码如下: (1)byte[] bt=System.Text.Encoding.Default.GetB ...