Action的返回值
MVC 中的 ActionResult是其他所有Action返回類型的基類,下面是我總結的返回類型,以相應的幫助方法:
下面是這些方法使用的更詳細的例子
一、返回View View()方法的幾種重載:
return View();
}
public ViewResult Index() {
return View( " Index ", " _AlternateLayoutPage ");
}
public ViewResult Index() {
return View( " ~/Views/Other/Index.cshtml ");
}
二、返回partialView
{
return PartialView();
}
// 禁止直接訪問的ChildAction
[ChildActionOnly]
public ActionResult ChildAction()
{
return PartialView();
}
我們直接右鍵當前的Action名稱就可以創建與Action同名的View,無參數的情況下,PartialView返回的就是與Action同名的View。
三、跳轉的幾種實現方式
public RedirectResult Redirect() {
return Redirect( " /Example/Index ");
}
2、通過RedirectToRoute方法跳轉:
public RedirectToRouteResult Redirect() {
return RedirectToRoute( new {
controller = " Example ",
action = " Index ",
ID = " MyID "
});
}
3、通過RedirectToAction方法跳轉:
public RedirectToRouteResult Redirect() {
return RedirectToAction( " Index ", " Basic "); // 如果只有action名稱的話,Controller默認為當前Controller
}
四、返回json字符串
{
Dictionary< string, object> dic = new Dictionary< string, object>();
dic.Add( " id ", 100);
dic.Add( " name ", " hello ");
return Json(dic, JsonRequestBehavior.AllowGet);
}
主要用於返回json格式對象,可以用ajax操作;
注意:需要設置參數,JsonRequestBehavior.AllowGet,否則會提示錯誤:此請求已被阻止,因為當用在GET 請求中時,會將敏感信息透漏給第三方網站。
若要允許 GET 請求,請將JsonRequestBehavior設置為AllowGet。
五、返回ContentResult
{
return Content( " Test Content ", " text/html "); // 可以指定文本類型
}
頁面輸出“Test Content”;此類型多用於在ajax操作中需要返回的文本內容
六、返回JavaScriptResult
{
string str = string.Format( " alter('{0}'); ", " 彈出窗口 ");
return JavaScript(str);
}
七、返回FileResult
{
string fileName = " ~/Content/test.zip "; // 文件名
string downFileName = " 文件顯示名稱.zip "; // 要在下載框顯示的文件名
return File(fileName, " application/octet-stream ", downFileName);
}
直接下載test.zip后保存到本地則為"文件顯示名稱.zip"
八、返回404、401
return HttpNotFound();
}
返回401
public HttpStatusCodeResult StatusCode() {
return new HttpUnauthorizedResult();
}