/wlb/archive//12/10/1620790.html
通常我们在一个 MVC项目中创建一个Controller的时候,Index()方法默认的返回类型都是ActionResult,通过查看UML图,ActionResult实际上是一个抽象类,因此实际返回的类型是该抽象类的子类。
ØActionResult及其子类的对照表
通过我们在代码中编写,不难看到如下的一段代码:
public ActionResult Index()
{
return View();
}
可能有人会有疑问,既然我定义的是ActionResult,为什么返回值会是View呢?
其实这个View的类型是ActionResult的子类ViewResult,有关Controller中的方法与返回对象请参照下表:
Untitled Page 微软北京.NET俱乐部13号群:249636398 作者:深山老林 出处:/ 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
例子:
public ActionResult query_cookie_info(){bool loginStatus = false;string _nk_ = string.Empty;if (isAuthenticated()){loginStatus = true;SystemUser systemUser = this.iUserService.GetOrCreateUser(this.HttpContext);_nk_ = getGracefulName(systemUser);}string script = "var userCookie={_nk_:'" + _nk_ + "',_l_g_:'" + (loginStatus?"1":"") +"',uc1:'',mt:'',l:'',version:''};TB && TB.Global && TB.Global.run && TB.Global.run();";return JavaScript(script);}
例子:
public ActionResult login(LoginModel loginModel,string tpl_redirect_url,string style){bool remember=false;string userID = string.Empty;if (vr.isSucceed){userID = loginUser.SystemUser.Id;populateFormAuthCookie(remember, userID, "");if (false /*is full login*/){return RedirectToAction("MyCart", new { controller = "Home", area = "Cart" });}return Redirect(tpl_redirect_url);}。。。。。
例子:
[Description("显示相应的类别对应的新闻")]public ActionResult GetNewsBySectionID(string sectionID, int? pageIndex, int? pageSize, string viewName){int _pageSize = pageSize ?? 10;int _pageIndex = pageIndex ?? 0;string _viewName = viewName ?? "LiWithEndDateWidget";IList<DataResource> listnews = _newsRepository.GetNewsBySectionID(sectionID, _pageIndex, _pageSize);return View(_viewName, listnews);}
例子:
[Description("点击dtree时根据点击的节点转到不同的页面")]public ActionResult TreeResearchView(string flag){string MetaSetID = flag;return RedirectToAction("TreeResearch", "MetaObjectService", new { MSID = MetaSetID });}
RedirectToAction方式从一个action跳转到另一个action
重定向到UserController.cs中的Edit()函数,如果不在同一个Controller中,那么雷同重定向到HomeController.cs中的Index()函数