Asp.net MVC распознает обычный текст как имя представления
Так вот какой вид :
div class="row"> <div class="col-md-6" style="width:auto"> @foreach (var module in Model) { if (module.Placeholder == "left" && module.PageId == "contact" && module.Control == "Tabelar2") { Html.RenderAction("Tabelar2", "ContentHtml", module.Control ); } <br /> } </div>
У меня есть поле в элементе управления базой данных, которое сохраняет имена элементов управления/actionresults/views, например
module.Controlпоказывает 3 слова (имена actionresults/views) из базы данных, списка новостей и Tabelar и Tabelar2.
В приведенном выше коде я говорю вручную, но как я могу это сделать , если :
if (модуль.Control = = "Tabelar2") / / tabelar2-это просто текст , а на самом деле имя actionresult в контроллере
{
Html. RenderAction ("Tabelar2"," ContentHtml", модуль.Контроль );
// than render module.control automatically
}
Итак, основываясь на module.control , затем визуализируйте этот элемент управления и распознайте его как actionresult/view , exmaple NewsList.chtml и визуализируйте это представление внутри div.
Что я уже пробовал:
я только что объяснил выше этот вопрос.
David_Wimbley
Я думаю, что немного запутался, но это выглядит так, как будто вы пытаетесь написать оператор if, который содержит переменные для имен ваших действий/контроллеров, которые вы пытаетесь передать .RenderAction
.
Почему ты не можешь просто позвонить одному .RenderAction
метод и передать все переменные вместо того, чтобы писать оператор if, чтобы увидеть, соответствует ли ваше действие/контроллер, а затем жестко кодировать те же значения, которые вы только что сделали в операторе if.
То есть то, что я думаю, что вижу, как ты делаешь, это
if(moduel.Control == "Tabelar2")
{
Html.RenderAction("Tabelar2", "ContentHtml", module.Control)
}
Почему бы просто не иметь свойств вашей модели скажем .ActionName
и .ControllerName
тогда все, что вам нужно сделать, это
Html.RenderAction(model.ActionName, model.ControllerName, module.Control)
И не нужно беспокоиться о написании тонны операторов if для того, чтобы, основываясь на вашей истории комментариев, это была CMS. Если вы пишете CMS, вам нужно обеспечить максимальную гибкость, поэтому в любое время, когда вам нужно добавить условие в эту группу операторов if, вы не обязательно предоставляете максимальную гибкость конечному пользователю.