Как отобразить полностью сформированную HTML-страницу в виде MVC? - PullRequest
0 голосов
/ 21 ноября 2018

MVC / ASP.NET / C # / html / javascript вопрос новичка:

Я пытаюсь перевести некоторые устаревшие программы в решение MVC.У меня есть метод ViewResult контроллера MVC, который выполняет вызов API для устаревшей системы и возвращает строку, которая является полностью сформированной HTML-страницей (включая HTML-теги start и end).Когда-нибудь в будущем я перепишу логику как представление MVC, но сейчас мне нужно просто отобразить эту страницу (желательно в новой вкладке).

Я пробовал это в контроллере:

return View((object)calendar);  

(где «календарь» - строка, содержащая документ HTML)

На мой взгляд, у меня есть

  @model string  
  @{ Layout = null; }  
  @Model  

Но это не сработало.
Есть идеи?

Ответы [ 3 ]

0 голосов
/ 23 ноября 2018

Спасибо, Реха!Но, к сожалению, ни одно из ваших предложений не сработало.
Для вашего первого предложения я использовал ViewBag.В контроллере я заменил

return View((object)calendar);

на

ViewBag.calendar = calendar;
return View();

и заменил представление просто на

@{ Layout = null; }
@ViewBag.calendar

В результате пользователь остался смотреть нафактический HTML код вместо того, что должен отображать HTML-код.

Для вашего второго предложения я поступил именно так, как вы предлагали (за исключением того, что я изменил Model.CalendarName= "имя теста ..."; to Model.CalendarName = calendar; Результат тот же, пользователь остается смотреть HTML-код.

0 голосов
/ 23 ноября 2018

Привязка модели привязывает объект вашего класса модели.

Например, ([Решение]. [Модели]. [Класс модели]),

@model PassDatainMVC.Models.Record

Для передачиданные с контроллера для просмотра,

Подход 1: ViewBag

Контроллер:

string data = "testing";
ViewBag.see = data;
return View();

Просмотр:

@using PassDatainMVC.Models
@ViewBag.see

Или:

Подход 2: Обвязка модели

Контроллер (Класс):

public string recordProperty;

Вид:

@model PassDatainMVC.Models.Record
@Model.recordProperty

В то время как вы должны установить свойство для класса модели в поле данных для второго подхода.

Справ.https://www.c -sharpcorner.com / статьи / жерех-нетто-MVC-ближнего данных из-контроллера к мнению /

0 голосов
/ 22 ноября 2018

Если вы хотите использовать только одну информацию, вы можете использовать ViewBag .Это просто.

Также вы хотите отправить с моделью.Вы должны использовать этот код.

Класс

 public class Calendar
    {
        public string CalendarName { get; set; }
    }

Контроллер

Calendar newModel = new Calendar();
newModel.CalendarName = "test name...";
return View(newModel);  

Вид

 @model ModelNamespace.Calendar

<h1> @Model.CalendarName </h1>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...