Razor Helper #asp.net
//以前需要这样写
<script src="@Url.Content("~/Script/site.js")"></script>
//现在仅需要这样写就行了,因为Razor可以正常的解析 ~/
<script src = "~/Script/site.js"></script>
@{
string s ="super xiao lizi";
@s; // 里面的这个@代表着在页面上输出这个s // 我记得实际是给了Response.write
}
//razor中的js无法使用@符号
//要么使用\\u0440来代替,要么使用@@来代替,用前者解析器不会报错
//Ajax.ActionLink
@Ajax.ActionLink(
"测试ajax",
"ajax",
"Home",
newAjaxOptions(){
Confirm="您确定要跳转吗?",
UpdateTargetId="testajax",
HttpMethod="GET",
InsertionMode=InsertionMode.Replace,
Confirm ="您确定要跳转吗?", //获取或设置提交恳求之前,显示在确认窗口中的消息。
HttpMethod="GET", // 获取或设置 HTTP 恳求办法(“Get”或“Post”)。
InsertionMode=InsertionMode.Replace, // 获取或设置指定如何将响应插入目标 DOM 元素的模式,InsertAfter,InsertBefore , Replace
LoadingElementId="", // 获取或设置加载 Ajax 函数时要显示的 HTML 元素的 id 特点。
OnBegin="", //获取或设置更新页面之前,正好调用的 JavaScript 函数的名称。
OnComplete="", //获取或设置实例化响应数据之后但更新页面之前,要调用的 JavaScript 函数。
OnFailure="", // 获取或设置页面更新失败时,要调用的 JavaScript 函数。
OnSuccess="", //获取或设置成功更新页面之后,要调用的 JavaScript 函数。
UpdateTargetId="", // 获取或设置要应用办事器响应来更新的 DOM 元素的 ID。
Url="", //获取或设置要向其发送恳求的 URL。
}
);
//在模板页layout中这样写,就可以包含前台的中定义的@Section xxx代码
@RenderSection("name",required :false)
@RenderSection("scri",required :false)
@section name// 注意section是小写的
{
<style>.... </style>
}
ModelState.AddModelError("Title","What a terrible name!");
@Html.RadioButton("Active","true") yes
@Html.RadioButton("Active",false,true)
@Html.RadioButton(); // 显示的是一个input RadioButton控件
@Html.Button(); // 显示的是一个input Button控件
@Html.DropDownList(); //显示的是一个input DropDownList控件
@Html.Hidden(); //显示的是一个input Hidden控件
@Html.ValidationMessage(); //显示的是一个input ValidationMessage控件
@Html.BeginForm("ActionName","ControllerName",FormMethod.method); 显//示的是一个input BeginForm控件,优化内存的控件,避免内存泄漏
@Html.DisplayFor(modelitem=>item.content); //显示的列的内容
@Html.DisplayNameFor(model=>model.Title); //显示的是列名
@Html.Raw(ViewBag.ss);//直接使用@ViewBag.ss来显示只能显示源代码,使用@Html.Raw可以讲ViewBag中的html代码解析为页面
@Html.EditorFor(model=>model.Title,xxxx)
@Html.ValidationMessageFor(model=>model.Title,xxxx)
@Html.LabelFor(model=>model.content)
@Html.TextArea("area",null,new{ id="ta"}); // area是名字,null是传入的字符串,new下的是属性
@Html.CheckBoxFor(modelItem=>item.Checkd) //这个真强,一步写出带有返回值的代码,而且可以在control中直接使用,很好很强大
@Url.Content//可以将ViewBage传回来的~符号给删掉,清理出一个干净的url相对路径给src用 <img src="@Url.Content(ViewBag.ImageUrl)" alt="Alternate Text" />
//RenderPage用法
@RenderPage("~/Views/Shared/_Header.cshtml")
//正常解析含有html的代码需要
@Html.Raw(ViewBag.ss);
//直接使用@ViewBag.ss来显示只能显示源代码,像这样
@ViewBag.ss
//使用Scripts.Render()引入脚本
@sectionScrits{ @Scripts.Render("~/bundles/jquery") }
//DropDownListFor
<td> @Html.DropDownListFor(
model => model[i].AdDirectoryViewModel.AccountType,
ViewData["accounttypes"] as List<SelectListItem>,
"--请选择账户类型--",
new {@class = "dropdown", onchange = "ChangeCompanies()"}
)
</td>
//DropDownListFor级联
@Html.DropDownListFor(
model => model[i].UIViewModel.Dept,
new List<SelectListItem> {
new SelectListItem() {
Text = "请选择",
Value = (null as bool?).ToString() }},
"--请选择部门类型--",
new { @class = "dropdown", id = "depts", onchange = "ChangeTitles()" }
)
//避免CRSF攻击
//微软定义了一个HTTP-onlycookie特性来检测cookie是否发生了变化
//前端的cshtml页面需要声明一下这个
@Html.AntiForgeryToken();
//后端每一个model字段上,要使用
[ValidateAntiForgeryToken]
//使用[ValidateAntiForgeryToken]属性来验证Token
//MVC使用Ajax.BeginForm上传图片时HttpPostedFileBase file为null,Request.Files获取不到文件
//问题分析是页面中存在jquery.unobtrusive-ajax.js文件,注释后能够获Html.ActionLink方法Html.ActionLink("linkText","actionName")
Html.ActionLink("linkText","actionName","controlName")
Html.ActionLik("linkText","actionName",routeValues) // routeValue可以向action传递参数,如Html.ActionLink("detail","Detail",new { id=1}),会生成 <a href="Products/Detail/1">detail</a>
Html.ActionLink("linkText","actionName",routeValues,htmlAttributes) // htmlAttribute可以设置<a>标签的属性,如下面的例子
Html.ActionLink("detail","Detail",new{id=1},new{ target="_blank",@class="className"}),<a href="Products/Detail/1" target="_blank">detail</a>,
//Ajax.ActionLink
@Ajax.ActionLink(
"测试ajax",
"ajax",
"Home",
newAjaxOptions(){
Confirm="您确定要跳转吗?",
UpdateTargetId="testajax",
HttpMethod="GET",
InsertionMode=InsertionMode.Replace,
Confirm ="您确定要跳转吗?", //获取或设置提交恳求之前,显示在确认窗口中的消息。
HttpMethod="GET", // 获取或设置 HTTP 恳求办法(“Get”或“Post”)。
InsertionMode=InsertionMode.Replace, // 获取或设置指定如何将响应插入目标 DOM 元素的模式,InsertAfter,InsertBefore , Replace
LoadingElementId="", // 获取或设置加载 Ajax 函数时要显示的 HTML 元素的 id 特点。
OnBegin="", //获取或设置更新页面之前,正好调用的 JavaScript 函数的名称。
OnComplete="", //获取或设置实例化响应数据之后但更新页面之前,要调用的 JavaScript 函数。
OnFailure="", // 获取或设置页面更新失败时,要调用的 JavaScript 函数。
OnSuccess="", //获取或设置成功更新页面之后,要调用的 JavaScript 函数。
UpdateTargetId="", // 获取或设置要应用办事器响应来更新的 DOM 元素的 ID。
Url="", //获取或设置要向其发送恳求的 URL。
}
);