EnGiNe.Pl Ответов: 1

C# MVC CMS простая генерация


Предположим, у нас есть представление: "ViewProduct.cshtml". Теперь предположим, что мы хотим создать простые действия AddProduct GET и POST. Можно ли автоматически сгенерировать AddProduct ПОЛУЧИТЬ версия, сделав это:

Визуализируйте именно то, что находится в ViewProduct.cshtml, но замените каждое свойство @Model.$типа string (например, Model.Название, Модель.Содержание, но не модель.Date f. e.) by @Html. TextBoxFor(M => m.$property)? Как я мог этого достичь программно?

Концепция-это что-то вроде этого:
публичный ProductController
{
public ActionResult ViewProduct () { ... }
public ActionResult CMSViewProduct()
{
// Псевдокод я ищу для реализации.
строка html = GetHTMLCode ("ViewProduct.cshtml");
html = html.Заменить(@Model, ...)
return View (html); / / здесь html будет содержать текстовые поля для каждой @Model.#property#, где свойство имеет строковый тип.
}
}

Что я уже пробовал:

Я уже построил весь ViewProduct.cshtml, и у меня есть готовые контроллеры. Я тщательно изучил Html.Render (RenderPartial, Partial), в частности, но это не помогает, так как мне нужно что-то, что сначала возьмет весь код из ViewProduct.cshtml, а затем заменит и добавит textboxs перед отправкой html пользователю, так что если я добавлю новое свойство внутри Model и ViewProduct в будущем, CMS будет немедленно готова к работе.

1 Ответов

Рейтинг:
2

Tabish Mateen

Привет,

Да, вы можете просто использовать Ajax-запрос и передавать значение параметра по своему усмотрению. Вы можете установить значение функции JS с помощью объекта @Model.

AjaxUrl = ControllerName + Имя Функции


$.ajax({
            type: "GET",
            url: Ajaxurl,
            cache: false,
            data: { Id: Id },
            error: function() {
                alert("An error occurred.");
            },
            success: function(data) {
              alert("Success.");
           
            }

        });


EnGiNe.Pl

Извините, что я недостаточно точен - это должно быть сделано на стороне сервера. Теперь я обновил вопрос.

Tabish Mateen

Существует несколько вариантов, которые могут быть использованы в зависимости от вашего сценария.

Первый Подход :
--------------------
Используйте условный оператор внутри вашего представления и на его основе визуализируйте частичное представление. Быстрый и простой в реализации.

Пример :

if (@Model.Тип = " Первый")
{
@Html. Partial("_First")
}
ещё
{
@HTML-код.Частичная("_Second",@Модель.SecondData)
}


второй способ :
-------------------

Рендеринг частичного представления из кода позади на основе ваших критериев.

Пример:

return PartialView ("_Details", DetailsData);

Надеюсь, это ответит на ваш вопрос.