У меня есть класс базового контроллера, и я бы хотел передать сообщение из базового класса ко всем контроллерам и чтобы это сообщение было доступно для всех представлений.Базовый класс контроллера
Я создал базовую версию ниже ...
Раздел Контроллер
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
namespace Website.Controllers
{
public class SectionController : Controller
{
//
// GET: /Section/
public ActionResult Section()
{
ViewData["Message"] = "THIS IS A TEST";
return View();
}
}
}
Главная Контроллер
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
namespace Website.Controllers
{
public class HomeController : SectionController
{
public ActionResult Index()
{
return View();
}
}
}
Посмотреть
<%= Html.Encode(ViewData["Message"]) %>
Я знаю, что могу это сделать в домашнем контроллере, но я просто тестирую в моменте.
Я не получаю никаких ошибок с вышеуказанным, но я также не показываю сообщение на моем представлении?
Я использую этот урок http://www.asp.net/LEARN/mvc/tutorial-13-cs.aspx Часть «Хорошее решение», если это помогает.
Подумайте я получил это работает в настоящее время используется код ниже на моем sectionController ...
namespace Website.Controllers
{
public class SectionController : Controller
{
//
// GET: /Section/
public SectionController()
{
ViewData["Message"] = "THIS IS A TEST";
//return View();
}
}
}
Является ли это нормально решение?
Это практически работает, но конструктор предназначен для создания объекта. Я не думаю, что размещение некоторых данных в ViewData имеет какое-то отношение к построению SectionController. –
Я вижу, где я ошибся, я пытался вернуть ActionResult, но все, что я хотел, было сделать доступной информацию. Я редактировал свой пост с моим текущим решением. – Jemes
Я не говорю, что ваше решение неверно или оно не работает, оно, безусловно, работает. Я просто говорю, что конструктор является семантически неправильным местом для заполнения viewdata. –