Q:Controller 中的控制器与View中的同名文件夹一一对应,一个.cshtml的页面对应一个方法,不特定说明的情况下,return View()返回对应的页面 ,但是返回的页面是如何得到数据的?
Q:为什么默认情况下打开的是home/index页面而不是其他的页面
A:在RouteConfig中配置了相关的属性
Razor只支持两种文件类型 .csheml .vbhtml
@{......} 定时多个变量时可使用代码块
@变量名 可进行值的输出
*@ @* 注释
一律采用 控制器/方法名/id
当版本的路由规则改变的时候,以前所写的路由路径就会作废:
一般情况下的标签使用规则
通过Url内置对象action()方法实现 <a href = "@Url.Action("about","home",new {name = "tom"})">
使用HtmlHelper辅助类对象Html之的方法 @Html.ActionLink("跳转文本","about","home",new {name = "tom"})
HTML辅助方法 | 说明 |
---|---|
Html.BeginForm() | <form>标签 |
Html.CheckBox() | <input type = "checkbox">标签 |
Html.DropDownList() | <select>标签 |
Html.Password() | <input type = "password">标签 |
Html.RadioButton() | <input type = "radio">标签 |
Html.TextArea() | <textarea/>标签 |
Html.TextBox() | <input type = "text">标签 |
Html.Hidden() | <input type = "hidden">标签 |
对于表单的传值是通过name + value的形式传值,对于@Html.TextBoxFor(t => t[0].Name)
这种类型的赋值,只适用于单个的类中,且类中没有其他的嵌套类,否则name值就会变成很奇怪的下标+变量名的形式,在后台处理的时候会很麻烦,也会出错。
为了解决数值在传递的时候类型转换的麻烦(u 为对象)
viewData.Model = u
Return view(视图名称,u)
数据的自动装载,在表单的输入的时候通过特定的名称和方法中的形参相匹配传入特定的参数
[HttpPost]
public ActionResult Add(int userage,string usergender,string username){}
<td>@Html.TextBox("username", "请填入用户姓名")</td>
文件上传的时候需要一个表单用于提交数据,表单应该添加一个属性enctype="multipart/form-data"
对于标签中没有name属性的标签,可添加
<td>@Html.Hidden("username", u.id)</td>
表单的验证分为5种
表单的验证基本都依靠这个属性,
onblur ="" // 失去焦点之后触发的方法
主要原理为和实体类进行绑定,在表单中id以model.Name进行id 的绑定,在实体类中用[]的形式验证,对于目前阶段用处不大,暂时不学。
返回异步请求
$("#showTime").click(function () {
$.ajax({
url: "/User/showTime", // 请求地址
type: "post",
contentType: "application/x-www-form-urlencoded", // 返回内容编码格式
data:"", // 发送至服务器的数据
success: function (data) {
alert(data);
},
error:function(xhr,error,ex){
}
})
})
为MVC封装ajax的框架。感觉局限性有点大,暂时不学
使用restful风格的形式来获取数据,其主要难点在于给restful风格请求的命名,是否做到通俗易懂。
支持过滤器的类型有四种
-----------------------------------------------------------------------------2021/04/07
-----------------------一些想法:感觉MVC用处不大,但过滤器值得学习,现在基本上使用的是webapi
原文:https://www.cnblogs.com/alideluobo/p/14626985.html