所看到的Action都是return View();我們可以看作這個返回值用於解析一個aspx文件。而它的返回類型是ActionResult如
public ActionResult Index()
{
return View();
}
除了View()之外那我們這里還能用於返回什么值呢?
一、ascx頁面
場景:要返回代碼片斷,比如Ajax返回一個子頁
我們先新建一個Action
public ActionResult Ascx()
{
return PartialView();
}
我們下面再建一個View,仍然是在Action中點右鍵,AddView。
注意圖中勾選。
於是新建了一個ascx頁,我們將之少做改寫一下
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl" %> <div> 得到一個DIV </div>
運行,得到頁面
二、返回文本
除了上述情況,有時我們還會僅返回一段文本。
此時我們可以使用以下Action形式:
public ActionResult Text()
{
return Content("這是一段文本");
}
三、返回Json
有時我們在調用Ajax時還會要求返回對象為Json序列化的結果,如:
public ActionResult ShowJson()
{
var m = new EiceIndexModel{Name = "鄒健",Sex = true};
return Json(m);
}
返回文本:
{"Name":"鄒健","Sex":true}
四、輸出JS文件
大多時候js文件都是靜態的,但有時js文件可能也要動態生成這時我們可以這樣輸出
public ActionResult Js()
{
return JavaScript("var x=0;");
}
我們訪問之,得到一個正常頁面但其Content-Type:application/x-javascript; charset=utf-8
五、頁面跳轉
1.跳轉到Url
public ActionResult 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"//文件類型
);
}