标签:使用字符串 ... partial jquery get 特性 自动 错误 java
M(Model 模型) V(View 视图) C(Controllers 控制器)
/home/index
/控制器/行为
[HttpGet] or [HttpPost] public ActionResult index() { }
RedirctToAction("行为"); 重定向到某个行为
View(); 显示页面
如果一些行为不需要显示页面,则把返回值改为void,不加view即可
public void index() { }
ViewBag.Id = 1; ViewBag.Name = "张三"; ViewBag.stu = new Student(); .......
在页面上使用C#代码时使用
@{
ViewBag.Name
}
or
@ViewBag.Name
如果在C#代码中要编译器识别一条HTML时使用
@:这是一条HTML代码
ViewData和ViewBag是一样的东西,只是格式不同
ViewData["Name"] = "李四";
TempData["Name"] = "赵六";
return View(1); return View("陈七"); return View(new Student()); ..........
View()推送的数据默认为弱类型,如果要它变成强类型,要在页面上添加引用
@model model.Student;
public ActionResult index(int Id,String Name) { }
如果参数是对象,则不会对照对象名,而是对照对象中的属性名称
public ActionResult index(Student stu) { }
routes.MapRoute( name:"new_Route", url:"new/{id}", defaults:new {controller="News",action="Index",Id=UrlParameter.Optional}, constraints:new {id = @"\d+"} //至少一个数字 );
高版本的mvc可以使用特性注册路由
[RoutePrefix("xxx")]//为这个控制器中所有路由添加一个前缀 public class news{ [Route("new/{id}")]//为这个行为添加路由 public ActionResult GetOne(string id) { return Content("xxxx"); //使用字符串创建一个视图结果 } }
<a href="@Url.Action("行为","控制器")">超链接</a>
<a href="@Url.RouteUrl("路由名称",new {controller="控制器",action="行为",Id="参数"})">超链接</a>
return View("子页面","母版页");
或者在子页面上写
@{ Layout = "母版页"; //此处要写全部路径 }
@section 名称{
.......
}
在母版页中存储一个ViewBag,所有的子页面都可以使用
@Html.Partial("分部页名称",要给分部页的参数); or @Html.RenderPartial("分部页名称",要给分部页的参数);//效率更高
将分部页渲染过来
@Model
允许在路径后加后缀名 (如news/index.jsp),需要在web.config中配置
<system.webServer> <modules runAllManagedModulesForAllRequests="true"/> </system.webServer>
在mvc的中行为是有很多返回值类型的,但是这些类型都是ActionResult的子类,所有直接写ActionResult就可以了
return Json(new List<Models.Student>(){ ........... },JsonRequestBehavior.DenyGet //默认,不允许get or AllowGet //允许get);
使用ajax接收Json
$.ajax({ url:"请求地址", type:"get" //请求类型 dateType:"json" //结果类型 }).done(function(date){ //请求成功时触发 }).fail(function(err){ //请求失败时触发 });
console.warn(); 在控制台中输出
<img src="/控制器/行为" />
return new HttpNotFoundResult() //返回一个404页面 return JavaScriptResult() //返回一段js return EmptyResult() //返回空 null return new HttpStatusCodeResult(错误号,错误消息) //自定义报错
return PartialView() 返回分部页
@Html.Action("行为名"); or @Html.RenderAction("行为名"); //效率更高
return new JsonNetResult(){ Data=new List<XXX>(){ new XXX(){}, new XXX(){} },JsonRequestBehavior = JsonRequestBehaivor.AllowGet }
在页面上可以使用forEach来循环接收到的json
$.ajax({ url:"请求地址", type:"post or get", //请求类型 dataType:‘json‘ //请求数据的类型 }).done( function(data){ data.forEach( function(值,下标,这个集合){ } ); } );
自己写模板
var temp = ‘<div>{{id}}</div>‘; temp.replace("{{id}}",实际值); //把占位符替换为真实的值
@Html.ActionLink("这是一个链接","link"); //会生成 <a href="/index/link">这是一个超链接</a>
@Ajax.ActionLink("链接显示的文字","要链接到的视图的名字",new AjaxOptions{ UpdateTargetId = ‘id‘, Confirm = ‘弹框内容‘, LoadingElementId = ‘id‘, InsertionMode = InsertionMode.InsertAfter or Replace });
查看源代码会发现这样生成的a标签会多几个属性,这些属性是需要jquery.unobtrusive-ajax.js支持的,否则没有任何作用
Html.AntiForgeryToken(); 和 特性 [ValidateAntiForgeryToken] 一样是防止别人恶意提交数据的
标签:使用字符串 ... partial jquery get 特性 自动 错误 java
原文地址:https://www.cnblogs.com/nicopoiduang/p/8886455.html