Console.WriteLine()
никогда не будет отображаться в браузере клиента, поскольку он запускается на стороне сервера и открывается в окне консоли сервера.Необходимо использовать Debug.WriteLine()
, если вы хотите видеть сообщения отладки в окне немедленного вывода.
Также обратите внимание, что var a = '<%=RunBatch()%>'
выполняется только внутри страниц ASPX, его нельзя выполнить в Razorкоторый использует @{ ... }
для сегмента кода, и оба метода отладки являются серверными методами.
Если вы хотите отобразить отладочное сообщение на стороне сервера в консоли браузера с помощью console.log()
, вам нужно создать действие контроллераон выполняет оба метода с возвращаемым типом string
, а затем использует AJAX внутри функции notify()
, которая выводит результат в части success
.
Вот простой пример:
Действие контроллера
public IActionResult GetMessages()
{
var messages = new StringBuilder();
messages.Append(RunBatch());
messages.Append("\n"); // use newline to separate messages from different methods
messages.Append(ProcessAdjustedBatch());
return Json(messages.ToString(), JsonRequestBehavior.AllowGet);
}
Методы отладки
public static string RunBatch()
{
string batch = "Re-running batch";
Debug.WriteLine(batch);
TestOutput print = new TestOutput();
print.TestMethod();
return batch;
}
public static string ProcessAdjustedBatch()
{
return "I have been called from the datagrid!!!!";
}
Представление (тег скрипта)
<script>
function notify() {
console.log("pressed");
$.ajax({
type: 'GET',
url: '@Url.Action("GetMessages", "ControllerName")',
dataType: 'json',
success: function (result) {
console.log(result);
}
});
}
</script>
Теперь вывод консоли должен выглядеть следующим образом:
pressed
Re-running batch
I have been called from the datagrid!!!!
Пример в реальном времени: .NET Fiddle
Проблемы, связанные с данной:
Куда ведет Console.WriteLine в ASP.NET?
Asp.net mvc Console.WriteLineв браузер
Как использовать Console.WriteLine в ASP.Net MVC 3