1、ActionResult
ActionResult是一个父类,
子类包括了我们熟知的
ViewResult 返回相应的视图
ContentResult 返回字符串
RedirectResult( return Redirect(url:xxxx)) 重定向
RedirectToRouteResult (return RedirectToAction(actionName,controllerName:xxx)) 根据路由重定向
FileResult 向客户端输出文件
JsonResult 向客户端返回JSON对象
HttpStatusCodeResult 显示不同的状态码
PartialViewResult 返回部分页面
跳转到其他的行为(方法)
返回一个文件
一个图片的上传与查看功能实现
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
</head>
<body>
<img src="/Demo/BrowsePic?name=固定的name" alt="Alternate Text" />
<form action="/Demo/UploadFile" method="post" enctype="multipart/form-data">
<input type="file" name="pic" value="" />
<input type="submit" name="" value="提交" />
</form>
</body>
</html>
public ActionResult UploadFile(HttpPostedFileBase pic)
{
var filename = DateTime.Now.Ticks + pic.FileName;
pic.SaveAs(filename: Request.MapPath(basePath + filename));
var info = filename + "has been saved.";
return Content(filename);
} public ActionResult BrowsePic(string name)
{
return File(basePath + name, contentType: "image/jpg");
}
获取文件大小
file.ContentLength 单位是Byte
2、JSON
默认不允许get请求
public ActionResult Index()
{
// 允许get请求
return Json(new { id = , name = "Jack" }, JsonRequestBehavior.AllowGet);
}
单独写Action进行ajax操作
3、状态码
public ActionResult Index()
{
return new HttpStatusCodeResult(System.Net.HttpStatusCode.NotFound);
}
.InternalServerError 500
4、部分视图
不会添加Layout
public PartialViewResult GetPartial()
{
return PartialView();
}
<h2>这是部分页面的视图</h2>
作用类似于组件,适合作为组件被使用,使用方法:
<h1>index page for demo</h1><p>引用部分视图</p>@Html.Action("GetPartial")
另外,也可以在shared文件夹下创建分部页:
但是使用方法与上面不同:
<h1>index page for demo</h1><p>引用部分视图</p>@Html.Action("GetPartial")
@Html.Partial("_PartialPage1")
这种方式如何传参?通过其第二个参数:
主视图:
@using MVCStudy.Models<h1>index page for demo</h1><p>引用部分视图</p>@Html.Action("GetPartial")
@Html.Partial("_PartialPage1", new Animal{ Name = "pig" ,Sex = "male"})
分部视图:
@model MVCStudy.Models.Animal
<h2>你好,我是在shared目录下创建的分部页</h2><p>接下来是我所接收的参数</p><p>@Model.Name</p>
<p>@Model.Sex</p>