C# 如果我已在浏览器中成功打开新选项卡,如何从控制器将信息写入屏幕?
打开新选项卡并调用控制器中名为PrintConfirm()的方法的我的视图:C# 如果我已在浏览器中成功打开新选项卡,如何从控制器将信息写入屏幕?,c#,asp.net-mvc-2,C#,Asp.net Mvc 2,打开新选项卡并调用控制器中名为PrintConfirm()的方法的我的视图: 我不知道在ASP.NET MVC控制器操作返回ActionResults中,如果没有HTML/view,如何在屏幕上显示此操作。它们不是void public ActionResult PrintConfirm(int id) { var message = "my message that I want to be able to print"; return Content(message); }
我不知道在ASP.NET MVC控制器操作返回ActionResults中,如果没有HTML/view,如何在屏幕上显示此操作。它们不是
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
):
在视图中,您可以像这样简单地使用此帮助器:
<%= Html.FormatMessage(ViewData["Message"]) %>
在没有HTML/View的情况下,您希望如何在asp.net-MVC中显示内容?!我希望它类似于pdf,而不需要下载。如果我不能这样做,我将如何让我的消息显示在视图中?这真的没有意义。从技术上讲,您写入浏览器的所有内容都是“下载”的。无论如何,浏览器必须知道如何显示内容,无论是PDF、html还是其他格式。没有别的办法了。这正是我所需要的!!(第一个是我用过的)非常感谢@格多龙,是的,你在做梦。这是一场噩梦:-)我现在唯一的问题是它无法识别换行符?@user1229309,什么是无法识别的?您收到了错误消息还是什么?在HTML中,您可以使用
标记在输出的
元素中创建换行符或分组。如果您的邮件中只有\r\n
新行,则必须用
标记替换这些行。自定义HTML帮助程序可能适合在视图中完成此任务。消息会显示在屏幕上,但当我执行“消息一\n消息二”时,它会打印“消息一消息二”
public ActionResult PrintConfirm(int id)
{
ViewData["Message"] = "my message that I want to be able to print";
return View();
}
<div>
<%= ViewData["Message"] %>
</div>
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"]) %>