Мои знания MVC и Razor довольно просты, поэтому я надеюсь, что это что-то довольно простое. Обычно у меня Controllers
как обычно, но папка Views
имеет вложенную структуру. Например, вместо:
Views -> Index.cshtml
Это как
Views -> BrandName -> Index.cshtml
Я создал собственный помощник, чтобы обойти это, но я не уверен, как он будет работать с URL-адресами строк запроса? В качестве примера приведем контроллер:
private DataService ds = new DataService();
//
// GET: /Collections/
public ActionResult Index()
{
return View();
}
//
// GET: /Collections/Collection?id=1
public ActionResult Collection(int id)
{
var collectionModel = ds.GetCollection(id);
return View(collectionModel);
}
Но как мне заставить ActionResult Collection
взглянуть на:
Views -> Brand2 -> Collection.cshtml
Вот метод обхода, который я использовал:
public static string ResolvePath(string pageName)
{
string path = String.Empty;
//AppSetting Key=Brand
string brand = ConfigurationManager.AppSettings["Brand"];
if (String.IsNullOrWhiteSpace(brand))
path = "~/Views/Shared/Error.cshtml"; //Key [Brand] was not specified
else
path = String.Format("~/Views/{0}/{1}", brand, pageName);
return path;
}