Если я успешно открыл новую вкладку в браузере, как я могу записать информацию на экран с контроллера? - PullRequest
0 голосов
/ 27 февраля 2012

мое представление, которое открывает новую вкладку и вызывает метод в моем контроллере с именем PrintConfirm ():

 <a href="<%= Url.Action("PrintConfirm","Dashboard", new { id = Model.Data.Id })%>" rel="external" target="_blank"><button data-role="button" ui-icon="print">Print Confirmation</button></a>

мой контроллер, который создает сообщение, которое будет показано в новой вкладке, которую я открыл

public void PrintConfirm(id)
{
    var message = "my message that I want to be able to print";
    //what should I put here in order to have this message show up on the screen?
}

Я не знаю, как сделать так, чтобы это отображалось на экране без HTML / view

1 Ответ

2 голосов
/ 27 февраля 2012

В действиях контроллера ASP.NET MVC возвращаются ActionResults.Они не void.

public ActionResult PrintConfirm(int id)
{
    var message = "my message that I want to be able to print";
    return Content(message);
}

или возвращают представление:

public ActionResult PrintConfirm(int id)
{
    ViewData["Message"] = "my message that I want to be able to print";
    return View();
}

и внутри соответствующего шаблона (PrintConfirm.aspx):

<div>
    <%= ViewData["Message"] %>
</div>

ОБНОВЛЕНИЕ:

Согласно комментариям кажется, что сообщение, которое вы хотите отобразить, содержит новые строки (\r\n), и вы хотите отобразить эти новые строки в результирующем представлении.

В этом я бы порекомендовал вам написать собственный помощник HTML, который заменит эти новые строки тегами <br/>:

public static class HtmlExtensions
{
    public static IHtmlString FormatMessage(this HtmlHelper htmlHelper, object message)
    {
        var result = string.Join(
            "<br/>",
            Convert
                .ToString(message)
                .Split(new[] { Environment.NewLine, "\r", "\n" }, StringSplitOptions.None)
                .Select(x => htmlHelper.Encode(x))
            );
        return new HtmlString(result);
    }
}

, и в представлении вы можете просто использовать этот помощник, как этот:

<%= Html.FormatMessage(ViewData["Message"]) %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...