MVC 中的家常事
对于@后面变量加上括号解决异意的方法
例如: hello@User.Name 会误判为电子邮箱,解决办法是括号,即hello@(User.Name)
使用@Html.Raw()输出后台到.cshtml的前端代码
如后台 ViewBag.abc="<a href=\"#\">123</a>";
.cshtml @Html.Raw(ViewBag.abc);
Head中的可变模板<head>@RenderSection(“onehead”,false) </head> 在继承该模板的页面使用时:@section onehead{}
一些基本的东西还是整一下吧,不然老百度也不是事,好记性不如烂笔头,写一写吧
@Html.ActionLink()的两种重载,会用了其他 的就不用说了
@Html.ActionLink("删除链接", "MyHome", "Home", new {},new { id="myid", @class="myclass", onclick="return confirm(\"你确定要删除吗?\")"})
// 生成结果如下,如果参可传也应像上面一样传第一个New
<a class="myclass" id="myid" onclick="return confirm("你确定要删除吗?")" href="/Home/MyHome">删除链接</a>
// 下面这个New是传的参数,第二个New传的是HTML属性
@Html.ActionLink("删除链接", "MyHome", "Home", new {id="123",name="张三"},new { id="myid", @class="myclass", onclick="return confirm(\"你确定要删除吗?\")"})
//结果下面,上面的第一个New是传的参数,第二个New传的是HTML属性
<a class="myclass" id="myid" onclick="return confirm("你确定要删除吗?")" href="/Home/MyHome/123?name=%E5%BC%A0%E4%B8%89">删除链接</a>
@Html.ActionLink("删除链接", "MyHome", "Home")
@Html.BeginForm()
// 指定Form表单提交方式和路径等
@using (Html.BeginForm("MyForm", "FormController", FormMethod.Post))
{
}
<form action="/FormController/MyForm" method="post"/> // 结果
// 下面是带 HTML标签id和class属性的
@using (Html.BeginForm("MyForm", "FormController", FormMethod.Post, new { id="123",@class="myclass"}))
{
}
<form class="myclass" id="123" action="/FormController/MyForm" method="post"/> // 结果
//下面是带参数的见下面的new
@using (Html.BeginForm("Myform", "FormController", new { Myid = "123", name = "张三" }, FormMethod.Post))
{
}
<form action="/FormController/Myform?Myid=123&name=%E5%BC%A0%E4%B8%89" method="post"/> // 结果
// 下面是带参数和HTML属性的,第一个New传的是参数,第二个new 传的HTML是属性
@using (Html.BeginForm("MyForm", "FormController", new { myid = "123", name = "张三" }, FormMethod.Post, new { id = "myform", @class = "myclass" }))
{
}
<form class="myclass" id="myform" action="/FormController/MyForm?myid=123&name=%E5%BC%A0%E4%B8%89" method="post"/> // 结果
@Html.TextBox()和@Html.TextBoxFor()
@Html.TextBox("myText")
<input id="myText" name="myText" type="text" value="" /> // 结果 @Html.TextBox("mytxt", Model.Name, new { @style = "color:Red;" })
<input id="mytxt" name="mytxt" type="text" style=" color:Red" value="Model.Name的值" /> // 结果 @Html.TextBoxFor(m => m.Name, new { @style=" color: Red;"})
<input id="name" type="text" name="name" style="color: Red;" /> // 结果
如果与后台相关 可在后台实体中[Display(Name="用户名:")] ,那个 @Html.LableFor(m=>m.UserName) 则显示为用户名 ,代码如下:
namespace MvcApplication1.Models
{
public class User
{
public int Id { get; set; } public string UserName { get; set; } [Display(Name="用户真实姓名")]
public string Name { get; set; }
}
}
在前台View中的代码
@{
ViewBag.Title = "MyHome";
Layout = "~/Views/Shared/_Layout.cshtml";
}
@model MvcApplication1.Models.User @Html.LabelFor(m=>m.Name)
@Html.TextBoxFor(m=>m.Name)
显示结果
注意上面 @Html.LabelFor的翻译
@Html.CheckBox()
@Html.CheckBox("chk",true)
@Html.CheckBoxFor(m=>m.IsVaild,new {@class="myclass"})
@Html.DropDownList("ddl1",(SelectList)ViewData["TName"],"--XXx--")
public ActionResult Index()
{
List<User> list = new List<User>(){
new User{Id=,UserName="admin",Name="张三"},
new User{Id=,UserName="pm",Name="张三"},
new User{Id=,UserName="one",Name="张三"},
};
ViewData["listUser"] = new SelectList(list, "Id", "UserName");
return View();
} @Html.DropDownList("ddlUserName", ViewData["listUser"] as SelectList,"---请选择-")
强类型的如下
public ActionResult Index()
{
List<User> list = new List<User>(){
new User{Id=,UserName="admin",Name="张三"},
new User{Id=,UserName="pm",Name="张三"},
new User{Id=,UserName="one",Name="张三"},
};
ViewData["listUser"] = new SelectList(list, "Id", "UserName");
User u = new User();
u.UserName = "admin";
return View(u);
} @Html.DropDownListFor(m => m.Id, ViewData["listUser"] as SelectList, "请选择", new { @class="myclass"})
强类型选中如下: 选中u.id=2的
public ActionResult Index()
{
List<User> list = new List<User>(){
new User{Id=,UserName="admin",Name="张三"},
new User{Id=,UserName="pm",Name="张三"},
new User{Id=,UserName="one",Name="张三"},
};
User u = new User();
u.Id = ;
ViewData["listUser"] = new SelectList(list, "Id", "UserName",u.Id);
u.UserName = "pm";
return View(u);
} @Html.DropDownListFor(m => m.Id, ViewData["listUser"] as SelectList, new { @class="myclass"}) //
数据字典类型转换
public ActionResult MyHome()
{
Dictionary<int, string> myd = new Dictionary<int, string>();
myd.Add(, "admin");
myd.Add(,"pm");
myd.Add(, "one");
ViewData["ddl"] = new SelectList(myd, "Key", "Value");
return View();
} @Html.DropDownList("ddl",(SelectList)ViewData["ddl"],"---selectedone-")
@Html.RadioButton()
一组单选筐须id和name相同,代码如下
@Html.RadioButton("rdSix","男",true)
@Html.RadioButton("rdSix","女")
@{ if(ViewBag.IsError!=null && ViewBag.IsError ) { <script> alert("@ViewBag.Message") </script> // 注意alert里面的“”很重要! } }
MVC 中的家常事的更多相关文章
- .NetCore MVC中的路由(2)在路由中使用约束
p { margin-bottom: 0.25cm; direction: ltr; color: #000000; line-height: 120%; orphans: 2; widows: 2 ...
- .NetCore MVC中的路由(1)路由配置基础
.NetCore MVC中的路由(1)路由配置基础 0x00 路由在MVC中起到的作用 前段时间一直忙于别的事情,终于搞定了继续学习.NetCore.这次学习的主题是MVC中的路由.路由是所有MVC框 ...
- Asp.Net MVC中使用StreamReader读取“Post body”之应用场景。
场景:有三个市场(Global.China.USA),对前台传过来的数据有些验证需要细化到每个市场去完成. 所以就出现了基类(Global)和派生类(China.USA) 定义基类(Global)Pe ...
- 6.在MVC中使用泛型仓储模式和依赖注入实现增删查改
原文链接:http://www.c-sharpcorner.com/UploadFile/3d39b4/crud-operations-using-the-generic-repository-pat ...
- ASP.NET Core MVC 中的 [Controller] 和 [NonController]
前言 我们知道,在 MVC 应用程序中,有一部分约定的内容.其中关于 Controller 的约定是这样的. 每个 Controller 类的名字以 Controller 结尾,并且放置在 Contr ...
- ASP.NET MVC中利用AuthorizeAttribute实现访问身份是否合法以及Cookie过期问题的处理
话说来到上海已经快半年了,时光如白驹过隙,稍微不注意,时间就溜走了,倒是没有那么忙碌,闲暇之际来博客园还是比较多的,记得上次在逛博问的时候看到有同志在问MVC中Cookie过期后如何作相关处理,他在阐 ...
- 4.在MVC中使用仓储模式进行增删查改
原文链接:http://www.c-sharpcorner.com/UploadFile/3d39b4/crud-using-the-repository-pattern-in-mvc/ 系列目录: ...
- 5.在MVC中使用泛型仓储模式和工作单元来进行增删查改
原文链接:http://www.c-sharpcorner.com/UploadFile/3d39b4/crud-operations-using-the-generic-repository-pat ...
- 2.ASP.NET MVC 中使用Crystal Report水晶报表
上一篇,介绍了怎么导出Excel文件,这篇文章介绍在ASP.NET MVC中使用水晶报表. 项目源码下载:https://github.com/caofangsheng93/CrystalReport ...
随机推荐
- IIS中,当文件夹被删除时,防止应用程序重启的解决办法
如果你曾经修改了ASP.NET应用程序(dll文件),与修改了bin文件夹或Web.config文件(添加/删除/重命名的文件等),而该网 站在运行,你可能已经注意到,这将导致在AppDomain的重 ...
- android RelativeLayout属性和布局实例
// 相对于给定ID控件 android:layout_above 将该控件的底部置于给定ID的控件之上; android:layout_below 将该控件的底部置于给定ID的控件之下; andro ...
- 170413、怎么精确理解leader布置的任务(技术外的话)
[缘起] 和一个同学交代了一个很重要的事情,结果执行的结果并不是自己想要的,微微生气之余,简单的聊聊“如何精确的理解leader布置的任务”. [员工角度的潜在困惑] 1)leader讲了很多,脑子记 ...
- 如何自定义JSTL标签与SpringMVC 标签的属性中套JSTL标签报错的解决方法
如何自定义JSTL标签 1.创建一个类,从SimpleTagSupport继承 A) 通过继承可以获得当前JSP页面上的对象,如JspContext I) 实际上可以强转为PageContext II ...
- hdu2094—看似拓扑实际上是一道思维题
HDU2094 产生冠军 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2094 题意:中文题,就不解释了.题意已经非常清楚了. 这道题的看起来像是一 ...
- 微信公众号获取用户openId How to use cURL to get jSON data and decode the data?
w http://stackoverflow.com/questions/16700960/how-to-use-curl-to-get-json-data-and-decode-the-data
- iwconfig
解决办法:清空/var/lib/dhclient/dhclient.leases文件里的所有内容 # sudo dhclient -r //release ip 释放IP # sudo dhclien ...
- 如何查看电脑最大支持多少GB内存
第一种方法: 1.打开“开始”菜单,点击“运行”按钮,也可以直接使用[Win + R]组合快捷键打开, 在弹出来的窗口输入“CMD”,然后确定或者按下回车键 2.在命令窗口输入“wmic memphy ...
- Hbase优化方案
1.预分区设计 真正存储数据的是region要维护一个区间段的rowkey startRow~endRowkey ->手动设置预分区 create 'user_p','info','partit ...
- Error response from daemon: error creating overlay mount to /var/lib/docker/overlay2
环境:centos7.1 docker run -t -i centos /bin/bash 运行上面的命令开启容器时报错: /usr/bin/docker-current: Error respon ...