2013-11-15 2 views
0

내 웹 사이트 용 CMS를 만들려고 생각했지만 페이지를 만들고 메타 태그와 콘텐츠를 즉시 업데이트 할 수 있다고 생각했습니다. 좀 더 그것에 대해 생각하면, 나는 ... 나는 말의 내용을 업데이트 할 수동적 ActionResult 만들기

public ActionResult Index() 
{ 
    ViewBag = "My Content"; 
    return View(); 
} 

을 실현하지만 내 데이터베이스를 참조하는, 새로운 페이지를 생성하고 올바른 컨트롤러를 사용하는 방법에 대해 생각하지 않았다.

MVC에서 컨트롤러/ActionResults 및 해당 뷰를 동적으로 생성하는 방법이 있습니까?

종류는

제임스

에 관하여 당신은 많은 CMS 시스템은 페이지의 콘텐츠와 함께 데이터베이스의 각 페이지에게 ID를 할당 한 후 조회 단일 컨트롤러를 가지고있는 사용하는 접근 방식을 취할 수
+1

음 .. 그래,하지만 그 좋은 라우팅/URL 체계를 가지고 있고 필요한 단일 컨트롤러를로드하는 것보다 훨씬 더 복잡합니다. –

답변

0

public ActionResult Index(string pageID) 
{ 
    //Query the database for content for page with ID of pageID 
    ViewBag.Content = //Result from DB; 
    return View(); 
} 

다음 페이지에서 바로 내용을 표시 : 다음 페이지를

즉를 표시합니다. 내용이 포함 된 경우 HTML 태그 사용

@Html.Raw(ViewBag.Content) 
0

당신이 절대적으로 동일한 작업을 통해가는 페이지에 대해 서로 다른 견해를해야하는 경우는 다음과 같이 뭔가를 할 수 있습니다

public ActionResult Index(string pageID) 
{ 
    //Query the database for content for page with ID of pageID 
    ViewBag.Content = //Result from DB; 
    return View("/path/to/other/view"); 
} 

은 그러나이 고려 자신의 재량으로 사용하는 나쁜 습관.

public ActionResult Page(string url) 
{ 
    return Content("content for url"); 
} 

를 다음과 같이 보인다 경로 것 : 당신 친화적 인 URL을 원하는 경우 http://forums.asp.net/t/1596709.aspx

0

, 나는 같은 것을 할 것

routes.MapRouteLowercase(
    "Page", 
    "{*url}", 
    new {controller = "CmsPage", action = "Page", url = UrlParameter.Optional});