ASPMVC中多种ActionResult⽤法总结最近⼀段时间做了个ASP MVC4.0的项⽬,项⽬马上就要结束了,今天忙⾥偷闲简单总结⼀下⼼得:
1. 如果Action需要有返回值的话,必须是ActionResult的话,可以返回⼀个EmptyResult,Demo实例如下:
///<summary>
///
///</summary>
///<returns>EmptyResult</returns>
public ActionResult EmptyActionResult()
{
Respon.Write("This is a string content");
return new EmptyResult();
}
View Code
2. 如果需要转向指定的页⾯的话,转向⼀个指定的url,返回类型为RedirectResult,Demo实例如下:
///<summary>
/// Controller.Redirect(),转向⼀个指定的url
///</summary>
///<returns>RedirectResult</returns>
public ActionResult RedirectResult()
{
return ba.Redirect("~/Controllers/DestinationController");
}
View Code
3.如果需要转向⼀个指定的Action,返回类型为RedirectToRouteResult,Demo实例如下:
///<summary>
/// Controller.Redirect(),转向⼀个指定的Action
///</summary>
///<returns>RedirectToRouteResult</returns>
public ActionResult RedirectToRouteResult()
{
return ba.RedirectToAction("DestinationOController");
}
View Code
4.如果需要将指定的对象以JSON串的形式返回,返回类型为JsonResult,Demo实例如下:
///<summary>
/// Controller.Json(),将对象以Json的形式返回
///</summary>
///<returns>JsonResult</returns>
public ActionResult GetJsonResult()
{
var jsonObj=new {Name:"Test Name";Age:25};
return ba.Json(jsonObj);
}
View Code
5. 如果需要返回⼀段Javascript代码,返回类型为JavascriptResult,Demo实例如下:
///<summary>
/// Controller.JavaScript(),将对象以Javascript脚本的形式返回
///</summary>
///<returns>JavaScript</returns>
public ActionResult GetJavascriptResult()
{
湘灵鼓瑟
return ba.JavaScript("alert('This is JavaScript result')");
6. 如果需要输出⼀段指定的内容,返回类型为ContentResult,Demo实例如下:
///<summary>
/// Controller.Content(),将对象以ContentResult的形式返回
///</summary>
///<returns>ContentResult</returns>
public ActionResult ContentResult()
{
string contentString = string.Format("<span style='color: red'>{0}</span>", "This is content result");
return ba.Content(contentString);
}
View Code
7. 如果需要将⼀个⽂件以字节输⼊的格式输⼊,返回类型为FileContentResult,Demo实例如下:
建筑改造
///<summary>
大的成语/// Controller.Content(),将对象以byte[]的形式返回
///</summary>
///<returns>FileContentResult</returns>
public ActionResult FileContentResult()
{
FileStream fs = new FileStream(Request.PhysicalApplicationPath + "Content/loading.gif", FileMode.Open);
int length = (int)fs.Length;
byte[] buffer = new byte[length];
fs.Read(buffer, 0, length);
fs.Clo();
return ba.File(buffer, "image/gif");
}
View Code
8. 如果需要将⼀个⽂件以⽂件流的格式输出,返回类型为FileStreamResult,Demo实例如下:
///<summary>
/// Controller.Content(),将对象以FileStream的形式返回
/
//</summary>
///<returns>FileStreamResult</returns>
public ActionResult FileStreamResult()
{
FileStream fs = new FileStream(Request.PhysicalApplicationPath + "Content/loading.gif", FileMode.Open); return ba.File(fs, @"image/gif");
}
View Code
9. 如果需要返回未经授权浏览状态的结果,返回类型为HttpUnauthorizedResult,Demo实例如下:
///<summary>
/// HttpUnauthorizedResult - 响应给客户端错误代码 401(未经授权浏览状态),
///如果程序启⽤了 Forms 验证,并且客户端没有任何⾝份票据,则会跳转到指定的登录页
///</summary>
///<returns>HttpUnauthorizedResult</returns>
public ActionResult HttpUnauthorizedResult()
{
return new HttpUnauthorizedResult();
}
View Code
10. 如果需要返回html页⾯的部分[.ascx],返回对象的类型为PartialViewResult,Demo实例如下:
///<summary>
/
爸爸英文怎么写// Controller.PartialView(),查找PartialView,即 .ascx ⽂件
///</summary>
///<returns>PartialView</returns>
public ActionResult PartialViewResult()
{
return ba.PartialView();
11. 如果需要返回完整的Html,即完整的View,返回的类型了ViewResult,Demo实例如下:
///<summary>
/// Controller.View(),查找View,即.aspx ⽂件
///</summary>
/六级报名时间
//<returns>ViewResult</returns>
public ActionResult ViewResult()
{
// 如果没有指定 View 名称,则寻找与 Action 名称相同的 View
return ba.View();
}
View Code
12. 使⽤Get⽅式调⽤Action,返回类型为参数为空的ViewResult,Demo程序实例如下:
///<summary>
///⽤于演⽰ Get ⽅式调⽤ Action
/
// id 是根据路由过来的;param1和param2是根据参数过来的
///</summary>
///<returns></returns>
[AcceptVerbs(HttpVerbs.Get)]
public ActionResult GetDemo(int id, string param1, string param2)
{
ViewData["ID"] = id;
ViewData["Param1"] = param1;
ViewData["Param2"] = param2;
return View();
}
别克售后
View Code
14. 处理上传⽂件的Action,Demo实例如下:
///<summary>
///处理上传⽂件的 Action毛鸡酒
///</summary>
///<param name="file1">与传过来的 file 类型的 input 的 name 相对应</param>
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult UploadFile(HttpPostedFileBa file1)
{
// Request.Files - 获取需要上传的⽂件。当然,其也会⾃动映射到同名参数
/
/ HttpPostedFileBa hpfb = Request.Files[0] as HttpPostedFileBa;
string targetPath = Path.Combine(AppDomain.CurrentDomain.BaDirectory + "Upload", Path.GetFileName(file1.FileName)); file1.SaveAs(targetPath);
return View("UploadDemo");
}
View Code
天津步行街待完善。。。