asp.net mvc3 вернуть исходный HTML-код для просмотра



есть ли другие способы, которыми я могу вернуть raw html из контроллера? В отличие от просто использования viewbag. как показано ниже:



public class HomeController : Controller
{
public ActionResult Index()
{
ViewBag.HtmlOutput = "<HTML></HTML>";
return View();
}
}

@{
ViewBag.Title = "Index";
}

@Html.Raw(ViewBag.HtmlOutput)
612   6  

6 ответов:

в этом нет особого смысла, потому что View должен генерировать html, а не контроллер. Но в любом случае, вы могли бы использовать контроллер.Метод контент, что дает вам возможность указать результат html, а также тип контента и кодировку

public ActionResult Index()
{
    return Content("<html></html>");
}

или вы можете использовать трюк, встроенный в asp. net-MVC framework-сделать действие возвращает строку напрямую. Он будет доставлять содержимое строки в браузер пользователей.

public string Index()
{
    return "<html></html>";
}

в самом деле, за какие-либо действия результате кроме ActionResult, framework пытается сериализовать его в строку и записать в ответ.

просто создайте свойство в модели представления типа MvcHtmlString. Вам не нужно будет Html.Сырой он тогда тоже.

дать попробовать возвратите bootstrap alert message, это работает для меня

return Content("<div class='alert alert-success'><a class='close' data-dismiss='alert'>
&times;</a><strong style='width:12px'>Thanks!</strong> updated successfully</div>");

Примечание: Не забудьте добавить bootstrap css и js на странице просмотра

надеюсь кому-нибудь поможет.

это выглядит нормально, если вы не хотите передать его как строку модели

public class HomeController : Controller
{
    public ActionResult Index()
    {
        string model = "<HTML></HTML>";
        return View(model);
    }
}

@model string
@{
    ViewBag.Title = "Index";
}

@Html.Raw(Model)

в контроллере вы можете использовать MvcHtmlString

public class HomeController : Controller
{
    public ActionResult Index()
    {
        string rawHtml = "<HTML></HTML>";
        ViewBag.EncodedHtml = MvcHtmlString.Create(rawHtml);
        return View();
    }
}

на ваш взгляд, вы можете просто использовать это динамическое свойство, которое вы установили в своем контроллере, как показано ниже

<div>
        @ViewBag.EncodedHtml
</div>

контроллер

    public class HomeController : Controller
    {
      public ActionResult Index()
      {
        ViewBag.show = false;
        return View();
         }
      }

вид

    @{
        ViewBag.Title = "Index";
      }

    @if (ViewBag.show == false){
        <div >
            @*your code*@
        </div>
      }

Comments

    Ничего не найдено.