HomeController에 Index라는 한 가지 방법이 있습니다. (Microsoft에서 제공하는 기본 템플릿 일뿐입니다.)mvc3에서 컨트롤러 actionresult 메서드를 재정의하는 방법?
public class HomeController : Controller
{
public ActionResult Index()
{
ViewBag.Message = "Welcome to ASP.NET MVC!";
return View();
}
public ActionResult About()
{
return View();
}
}
이제 원하는 것은 ... Index 메서드를 재정의하는 것입니다. 아래처럼.
public partial class HomeController : Controller
{
public virtual ActionResult Index()
{
ViewBag.Message = "Welcome to ASP.NET MVC!";
return View();
}
public ActionResult About()
{
return View();
}
public override ActionResult Index()
{
ViewBag.Message = "Override Index";
return View();
}
}
OO 설계의 개방형 원리와 같은 기존 방법에는 수정을 원하지 않습니다. 가능하거나 불가능합니까? 또는 다른 방법이 있습니까?
당신은 그렇게 할 수 없습니다 , 선언 된 동일한 클래스의 메소드를 대체하려고 시도하고 있습니다. 서브 클래스의 메소드 만 대체 할 수 있습니다. 같은 클래스의 메서드를 "오버라이드"하려면 이전 메서드 본문을 새 메서드로 바꿉니다. – verdesmarald
이 작업을 수행 할 수 있다면/home/index를 방문 할 때 표시되는 결과는 무엇입니까? –
@verdesmarald : 내가 하위 클래스를 만들었다 고 가정합시다. 그렇다면 어떻게 살아야할까요? –