mufeed k Ответов: 1

Как я могу открыть отчет в формате HTML с ASP.NET с помощью C#


привет,
У меня есть веб-приложение в этом приложении, когда я нажимаю кнопку, которая мне нужна на моей HTML-странице. она уже создана. Я не очень хорошо знаком в asp.net Итак, кто-нибудь, пожалуйста, предложите идею.

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

1
string filepath = Server.MapPath("~/Report.html");
       string s = "window.open('" + filepath + "', 'popup_window', 'width=300,height=100,left=100,top=100,resizable=yes');";
       ClientScript.RegisterStartupScript(this.GetType(), "script", s, true);


выше код не работает
2
string filepath = сервер.MapPath ("~/Report.html");
Процесс p = новый процесс();
п. Информацию.Значение свойства useshellexecute = истина;
p. StartInfo.FileName = путь к файлу;
p. StartInfo.Глагол = " Открыть";
p. начало();
этот код отлично работает в моей visual studio, но он не поддерживается в IIS

Richard Deeming

Что касается №2, Process.Start запускает процесс на сервере.

Может быть появиться для работы при отладке в Visual Studio. Но это только потому, что в данном конкретном случае сервер и клиент-это одна и та же машина.

Как только вы развернете свой код на реальном сервере, никто не сможет увидеть запущенный процесс. В конце концов, ваш сервер может выйти из строя, потому что у вас слишком много открытых окон браузера, и никто не сидит перед сервером, чтобы закрыть их.

И нет, вы не можете заставить его запустить процесс на клиенте. Это было бы серьезной уязвимостью системы безопасности.

mufeed k

ладно. спасибо

1 Ответов

Рейтинг:
4

F-ES Sitecore

Сервер.MapPath получает путь к файлу на диске (c:\inetpub\wwwroot\site\report.htm) который не используется на клиенте, клиенту нужен html-путь, поэтому вам нужно отправить его вместо этого, поэтому используйте что - то вроде

Виртуальность.Метод ToAbsolute (String) (System. Web)[^]

string filepath = VirtualPathUtility.ToAbsolute("~/Report.html");