接下来讲讲Controller 部分...
首先启始路由在 方案总管-> App_Start资料夹底下的RouteConfig
defaults里面的controller对应着方案总管-> Controller资料夹底下的HomeController.cs档里的Index action(ActionResult) 为启始路由
public class HomeController : Controller
{
public ActionResult Index()
{
return View();
//跑到这段的时候会跳到显示画面 在方案总管-> View资料夹底下->Home资料夹->Index.cshtml
}
}
注解:或者可在程序Index()上方按下右键点选移置检视
如果自己的启始路由不是HomeController 想要改成LoginController也可以改成
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Login", action = "Index", id = UrlParameter.Optional });
}
一开始系统开启网页的路径为启始路由->找到对应的Controller->找到对应的Action->在从Action里面的View转到检视画面
ActionResult 预设为回传View() 显示画面,如果不想要回传显示画面还有以下几个方法
回传字串
public string Index()
{
return "aa";
}
导入其他网站
public ActionResult Index()
{
return Redirect("http://www.yahoo.com.tw/");
}
导入其他控制器+动作
public ActionResult Index()
{
return RedirectToAction("Index", "Home");
}
回传文字
public ContentResult Index()
{
return Content("aa");
}
以下整理到下方
继承类别 Controller
ContentResult Content() 回传文字
ViewResult View() 回传HTML
FileResult File() 输出档案
HttpNotFoundResult HttpNotFound() 回应HTTP状态码(404)
JsonResult Json() 输出Json
PartialViewResult PartialView() 部分HTML
RedirectResult Redirect();RedirectPermanent() 重新导向URL
RedirectToRouteResult RedirectToAction()转网址址 or 转Action
後续说明会以ActionResult为主....
补充说明:如果是.Net6版本则是IActionResult 会多一个I 这表示.Net6版本框架采用C#介面写法
跟旧版本MVC5 没有落差太大
讲到这里会有人想知道如何将资料丢到View()上,以下提供几种作法
1.ViewBag 、ViewData、TempData
public ActionResult Index()
{
ViewBag.Test = "test";
ViewData["A"] = "A";
TempData["B"] = "B";
return View();
}
ViewBag和ViewData只限於该Controller 离开该Controller 就读不到
TempData则是不同Controller 不同Action都有效
特点:读取一次後,Data里面"值"就会被清空
另外ViewBag和ViewData 如果取共用名称後者会覆盖前者
public ActionResult Index()
{
ViewBag.Test = "A";
ViewData["Test"] = "B";
//ViewBag.Test、ViewData["Test"]值皆为B
return View();
}
public class Class1
{
public string test { get; set; }
}
public ActionResult Index()
{
var test = new Models.Class1 { test = "aa" };//var 资料型态为Models.Class1
return View(test);
}
public ActionResult Index()
List<Models.Class1> testList = new List<Models.Class1>
{
new Models.Class1 { test = "aa" },
new Models.Class1 {test = "bb" },
new Models.Class1 { test = "cc" },
new Models.Class1 { test = "dd" }
};
return View(testList);//请注意 List 的资料型态为IEnumerable
}
後续会讲到丢过去View之後结果呈现会怎样....
<<: [Day07] TS:什麽是 Utility Types?
这篇开始基本上是进入持续分析有哪些未完善的部份需要进行补足。 依照这几次的bootlog的部份分析,...
好拉~ 倒数第二天,我就来全部统整复习一下吧! 世界会改变 生命的重要本质 人生大哉问 信仰与理性...
创建App-(老师版)功能 今天来建设老师版的功能,授课时间与教课纪录。今天来弄弄成授课时间的页面,...
资料传输 常见的资料传输方式有两种: Serial 将一串资料拆成多个资料,一次传一个资料。 pro...
在开发Vue时,官方建议使用属性及事件对其他元件做处理,不过凡事总有例外的嘛~ 还是会有一些情境中会...