Deutsch

Как лучше отображать код?

119  
uscheswoi_82 патриот5 дней назад, 06:43
NEW 5 дней назад, 06:43 

Есть Microsoft Windows Server 202x, нужно сделать на ASP NET WebForms чтобы отображался код в html файле (блог), и искался в поисковых машинах.

На данный момент так сделал:

Элемент управления ctlCode.ascx:

<%@ Control Language="C#" AutoEventWireup="true" CodeFile="ctlCode.ascx.cs" 
  Inherits="components_ctlCode" %>
<div class="highlighter">
    <strong><div class="filename" id="filename" runat="server"></div></strong>
    <br>
    <pre class="code"><code id="code" runat="server"></code></pre>
</div>



Код элемент управления ctlCode.ascx.cs:

using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;

public partial class components_ctlCode : 
System.Web.UI.UserControl
{
    protected String _strFileName;
    protected String _strTitle;

    public String FileName {
        set 
        {
            _strFileName = value;
        }
        get
        {
            return _strFileName;
        }
    }

    public String Title
    {
        set
        {
            _strTitle = value;
        }
        get
        {
            return _strTitle;
        }
    }

    protected void Page_Load(object sender, EventArgs e)
    {
        this.filename.InnerHtml = _strTitle;
        this.code.InnerHtml = System.IO.File.ReadAllText(_strFileName); // НЕХОРОШО!!!!
    }
}



Вызываю так:

<%@ Register Src="~/components/ctlCode.ascx" TagPrefix="c" TagName="Code" %>
<c:Code ID="code1" runat="server" FileName="C:\WebSite2\codes\main.cpp" Title="Main.cpp" />


Проблема что я не могу сдеать так:

<c:Code ID="code1" runat="server" FileName="#include<stdio.h>\nint main(void){\nprintf("hello");\n}" Title="Main.cpp" />


Можно placeholder или MasterPage использовать?


Должно работать примерно так наверное, но без javascript:

<!DOCTYPE html>
<html>
<head>
<title>Code Test</title>
<style>
.code { background-color:#eee; min-width:200px; 
 max-width:400px; 
 border:1px solid #999; padding:3px 3px; }
</style>
<script>
const code1 = '#include<stdio.h>\nint main(void){' + 
'\nprintf("Hello World!");\n}';
window.onload = () => { 
document.getElementById('code1').innerHTML = code1; 
} 
</script>
</head>
<body>
  <div class="code">
  <div class="filename">Code <strong>Main.cpp</strong></div>
  <pre><code id="code1"></code></pre>
  </div>
</body>
</html>
Если я кому-то отвечаю, это не значит что я ему симпатизирую, каждый остаётся при своём мнение Моя ФЛ Он и Она
#1 
7495 коренной житель5 дней назад, 06:50
7495
5 дней назад, 06:50 
в ответ uscheswoi_82 5 дней назад, 06:43

Ты почему в Werkstätte перестал ходить? Работать надоело? зло


.

Вопросы и Ответы - Программируем калькулятор пособий для беженцев вместе.
#2 
AlexNek патриот5 дней назад, 10:10
AlexNek
NEW 5 дней назад, 10:10 
в ответ uscheswoi_82 5 дней назад, 06:43
FileName="#include<stdio.h>\nint main(void){\nprintf("hello");\n}"

Ну вроде естественно, как имя файла может быть такое?


Или, Или

FileName = "C:\code.cpp"
Code = ""#include<stdio.h>\nint main(void){\nprintf("hello");\n}"
#3 
uscheswoi_82 патриот4 дня назад, 06:54
NEW 4 дня назад, 06:54 
в ответ AlexNek 5 дней назад, 10:10

Сонный был, я днём сплю, ночью бодрствою. Я уже решил проблему. Тему можно закрывать.

Если я кому-то отвечаю, это не значит что я ему симпатизирую, каждый остаётся при своём мнение Моя ФЛ Он и Она
#4