现在的位置: 主页 > 主打产品 > 文章正文

ASP.NET MVC中Action返回值类型

作者:成都渝祥金属丝网制品有限公司 来源:www.cdyuxiang.com 未知发布时间:2017-09-09 10:26:38
ASP.NET MVC中Action返回值类型

Action的返回值类型一共提供了十几种。简单概括一下其中很常用的几种类型。


1、ActionResult

所有的 Result 都派生自 ActionResult抽象类,因此 ActionResult 作为基类提供了最基础的功能,ActionResult 是一个抽象类,其声明如下:


[csharp]
<SPAN style="FONT-FAMILY: Microsoft YaHei; FONT-SIZE: 14px">public abstract class ActionResult {
public abstract void ExecuteResult(ControllerContext context);
}</SPAN>

public abstract class ActionResult {
public abstract void ExecuteResult(ControllerContext context);
}

2、EmptyResult


[csharp]
<SPAN style="FONT-FAMILY: Microsoft YaHei; FONT-SIZE: 14px">示public class EmptyResult : ActionResult {

private static readonly EmptyResult _singleton = new EmptyResult();
internal static EmptyResult Instance {
get {
return _singleton;
}
}
public override void ExecuteResult(ControllerContext context) {
}
}</SPAN>

示public class EmptyResult : ActionResult {

private static readonly EmptyResult _singleton = new EmptyResult();
internal static EmptyResult Instance {
get {
return _singleton;
}
}
public override void ExecuteResult(ControllerContext context) {
}
}

在Action中,若要返回一个空的页面(不常用),则可如下:

[csharp]
<SPAN style="FONT-FAMILY: Microsoft YaHei; FONT-SIZE: 14px">public ActionResult Index()
{
<SPAN style="WHITE-SPACE: pre"> </SPAN>return new EmptyResult();
}</SPAN>

public ActionResult Index()
{
return new EmptyResult();
}
3、RedirectResult

[csharp]
<SPAN style="FONT-FAMILY: Microsoft YaHei; FONT-SIZE: 14px"> public override void ExecuteResult(ControllerContext context) {
if (context == null) {
throw new ArgumentNullException("context");
}
string destinationUrl = UrlHelper.Content(Url, context.HttpContext);
context.HttpContext.Response.Redirect(destinationUrl, false /* endResponse */);
}</SPAN>

public override void ExecuteResult(ControllerContext context) {
if (context == null) {
throw new ArgumentNullException("context");
}
string destinationUrl = UrlHelper.Content(Url, context.HttpContext);
context.HttpContext.Response.Redirect(destinationUrl, false /* endResponse */);
}
RedirectResult用于执行转移。事实上 RedirectResult 最终调用了 Response.Redirect() 进行转移,所以您可以使用RedirectResult跳转到任意的包括当前项目或网络上的Url,对于当前项目的路径,因为使用了UrlHelper.Content() 方法获取目标路径,所以RedirectResult传递的Url同时支持当前项目目录标识符 ~ (即应用程序目录)。

4、RedirectToRouteResult

RedirectToRouteResult对于RedirectResult而言,可视化专题,其作用有所局限,仅能转移到路由(路由匹配的结果最终是一条相对当前项目的Url,例如: /Home/Index ),总的来说与RedirectResult的最终作用是一样的,都是执行转移。RedirectResult较为直接地转移到任意指定的Url,而RedirectToRouteResult则转移到指定的路由(路由匹配所得结果最终也是一个的Url):

企业建站2800元起,携手武汉肥猫科技,做一个有见地的颜值派!更多优惠请戳:黄冈SEO http://huanggang.4567w.com

上一篇:Python爬虫——手把手爬Kindle商店 下一篇:最后一页