//語法
public class JsonResult : ActionResult public class ContentResult : ActionResult public class RedirectResult : ActionResult eg: public ActionResult Index() { return View(); } //返回一個子頁 public ActionResult Ascx() { return PartialView(); } //返回文本 public ActionResult Text() { return Content("這是一段文本"); } 返回Json public JsonResult GetJson() { var Data = new { demo = demoList, Total = demoList.Count}; //在這里必須要設置JSON的請求行為為GET return Json(Data, JsonRequestBehavior.AllowGet); } public ContentResult DoSelect(string StudentId) { var result = "success"; return Content(JsonConvert.SerializeObject(result, Formatting.None)); } public ActionResult Index() { //這個是BiewBag傳值的方法 ViewBag.Title = "Demo一覽畫面"; if (0 == demoList.Count) { //模擬select * from DemoModels for (int i = 1; i <= 7; i++) { demoList.Add(this.CreateDemoModels(i)); } } return View(demoList); } //輸出JS文件 public ActionResult Js() { return JavaScript("var x=0;"); } //頁面跳轉 1.跳轉到Url public RedirectResult rdurl() { return Redirect("http://www.baidu.com"); } 2.跳轉到Action public ActionResult rdaction() { return RedirectToAction("Index","Eice"); } 3.跳轉到Routing規則 public ActionResult rdrouting() { return RedirectToRoute("Default",//Route名 new{Controller = "Eice",Action = "Index" }); } //顯示文件 public ActionResult fn() { return File("/Content/site.css","text/css"); }
//Excel導入模板下載 public FileResult GetFile() { const string url = "~/TempExcel/商品評論模板.xls"; var fileName = Server.MapPath(url); var name = Path.GetFileName(fileName); return File(fileName, "application/ms-excel", Url.Encode(name)); }
另外,
Webapi的接口返回值主要有四種類型
- void無返回值
- IHttpActionResult
- HttpResponseMessage
- 自定義類型
詳情參見:http://www.cnblogs.com/zfdcp-028/p/5788649.html
跳轉到同一控制器內的action和不同控制器內的action、帶有參數的action跳轉和不帶參數的action跳轉。
一、RedirectToAction("Index");//一個參數時在本Controller下,不傳入參數。
二、RedirectToAction(ActionName,ControllerName) //可以直接跳到別的Controller.
三、RedirectToRoute(new {controller="Home",action="Index"});//可跳到其他controller
四、RedirectToRoute(new {controller="Home",action="Index", id=param});//可跳到其他controller,帶參數。
五、Response.Redirect("Index?id=1");//適用於本controller下的方法名稱,可帶參數。
六、return Redirect("Index");//適用於本controller下的方法名稱。
七、return View("Index"); //直接顯示對應的頁面 不經過執行Controller的方法。
八、return View("~/Views/Home/Index.aspx");//這種方法是寫全路徑,直接顯示頁面,不經過Controller方法
九、return View();//直接顯示頁面,不經過Controller方法
重寫返回結果HttpResponseMessage
public class BaseController : ApiController { public int loginid { get; set; } public string loginname { get; set; } public BaseBll baseBll { get; set; } protected override void Initialize(HttpControllerContext controllerContext) { //初始化請求上下文 base.Initialize(controllerContext); try { new SortedDictionary<string, string>(); string username = string.Empty; HttpRequestHeaders headers = controllerContext.Request.Headers; if (headers.Contains("e")) { text = (headers.GetValues("e").FirstOrDefault<string>().ToString() ?? string.Empty); text = System.Web.HttpUtility.UrlDecode(username); } UserInfoEntity userInfo = new LoginBll().GetUserInfo(username); this.loginid = userInfo.LoginID; this.loginname = userInfo.LoginName; List<UserAuthorityEntity> tempList = userInfo.UserRole.UserAuthority; //不存在安全問題 后續文章有權限驗證 if (tempList.Where(c => c.AuthorityName == "權限名稱").ToList().Count > 0) { //調用一個有權限的bll層 this.baseBll = new SeniorBll(); } else { //調用一個沒有權限的bll層 this.baseBll = new OrdinaryBll(); } } catch (Exception ex) { LogHelper.WriteErrorLog("Initialize", ex); } } /// <summary> /// 設置action返回信息 /// </summary> /// <param name="result">返回實體</param> /// <returns></returns> protected HttpResponseMessage GetHttpResponseMessage(object result) { BaseResponseEntity<object> responseBaseEntity = new BaseResponseEntity<object>(0, result, string.Empty); return new HttpResponseMessage() { Content = new StringContent(JsonConvert.SerializeObject(responseBaseEntity, dtConverter), System.Text.Encoding.UTF8, "application/json") }; } /// <summary> /// 設置action返回信息 /// </summary> /// <param name="result">返回實體</param> /// <param name="msg">返回的信息參數</param> /// <returns></returns> protected HttpResponseMessage GetHttpResponseMessage(object result, ref string msg) { BaseResponseEntity<object> responseBaseEntity = new BaseResponseEntity<object>(0, result, msg ?? string.Empty); return new HttpResponseMessage() { Content = new StringContent(JsonConvert.SerializeObject(responseBaseEntity, dtConverter), System.Text.Encoding.UTF8, "application/json") }; } }
參考:http://blog.csdn.net/l1158513573/article/details/77045213 WebApi開發爬坑記之·一重寫ApiController