2012-06-21 3 views
-1

Я хочу изменить некоторую строку, расположенную в html-файле, когда она загружается. Например, у меня есть HTML-файл:Изменить html-код на стороне сервера asp.net

<html> 
<head> 
<title>MyTitle</title></head> 
<body> 
Some Text 
<script type='text/javascript'> 
/*some script*/ 
var myString = "TargerInfo"; 
/*some script*/ 
</script> 
</body> 
</html> 

Я использую Page_Load метод в файл кода:

protected void Page_Load(object sender, EventArgs e) 
{ 
/*Insert necessary snippet of code*/ 
} 

Какой код я должен использовать, чтобы изменить строку "TargerInfo" на "OtherString"?

[EDIT] Извините, что я забыл упомянуть я могу добавить любую информацию в HTML-страницу только в коде-за классом, потому что эта страница не порождается мной. Я думаю, что я должен использовать что-то вроде этого:

1) Загрузка файла HTML

2) найти мой струнный

3) заменить его

4) отправить HTML файл

Там является aspx-страницей, но я добавляю только часть кода, а другой код добавляется VS

+1

Это страница aspx? Тогда почему бы просто не добавить соответствующие теги <% %> в файл aspx? –

+0

Я не могу этого сделать, потому что html-страница не создается мной. – andDaviD

+0

@andDaviD вы должны были упомянуть об этом прямо в начале - многие люди потратили свое время на то, что вы контролировали страницу – freefaller

ответ

2

Если я что-то не хватает (потому что это кажется немного в ASP.NET 101), у вас есть несколько вариантов ...

не Создать переменная в коде-за, а затем использовать это ...

protected string _newText = ""; 
protected void Page_Load(object sender, EventArgs e) 
{ 
    _newText = "OtherString"; 
} 

, а затем в ASPX ...

var myString = "<%=_newText%>"; 

В противном случае вы можете использовать <asp:Literal> контроль

UPDATE

После обширного chat with @andDaviD оказывается, что Javascript в мастер-странице, состоявшейся в SharePoint Foundation.

Ссылка на главную страницу ссылается на его страницу содержания через атрибут DynamicMasterPageFile в директиве <%@ Page, поэтому он сказал, что он может обновить часть кода, но не другие.

Я по-прежнему не уверен, что можно изменить страницу мастера (либо самостоятельно, либо администратором), что ему нужно выяснить у ответственных лиц в его компании. Но я считаю, что добавление свойства или метода на главную страницу для обеспечения того, что ему нужно, является единственным разумным вариантом.

+0

Я не могу этого сделать, потому что html-страница не генерируется мной. – andDaviD

+1

@andDaviD это имело бы смысл прямо в начале, чтобы указать на это! – freefaller

1

Вы можете использовать литерал:

protected void Page_Load(object sender, EventArgs e) 
{ 
    literal.Text = string.Format("var myString = \"{0}\"", targetInfoValue); 
} 

Markup:

<html> 
<head> 
<title>MyTitle</title></head> 
<body> 
Some Text 
<script type='text/javascript'> 
/*some script*/ 
<asp:Literal id="literal" runat="server" /> 
/*some script*/ 
</script> 
</body> 
</html> 
+0

Я не могу этого сделать, потому что html-страница не создается мной. – andDaviD

+0

Что ... так где же разметка? Было бы полезно указать это на вопрос – dtsg

1

Вы можете получить его в скрытом поле в asp.net и сменить скрытое поле в коде позади.

+0

Вы имеете в виду то, что вы видели здесь http://www.codeproject.com/Questions/380472/Access-string-value-in-javascript-from-backend-pag? – Ruel

+0

Да .. это тоже хороший способ. –

2

Вы можете использовать встроенный ASPX код теги:

<script type='text/javascript'> 
/*some script*/ 
var myString = "<%= getTargetInfo() %>"; 
/*some script*/ 
</script> 

в коде:

protected String getTargetInfo() 
{ 
    return "OtherString"; 
} 
+0

Я не могу этого сделать, потому что html-страница не генерируется мной. – andDaviD

+0

@andDaviD: Что это значит, это не страница aspx? Тогда также нет кода. –

+0

Есть страница aspx, но я добавляю только часть кода, а другой код добавляется VS. – andDaviD

0

в коде позади:

public string otherString; 


otherString = "some text" //update the string with the value oyu want. 

в ASPX странице добавьте эту строку в любом месте вы хотите увидеть otherString.

<%=otherString%> 
+0

Я не могу сделайте это, потому что html-страница не создается мной. – andDaviD

+0

Вы можете объяснить немного больше, пожалуйста. вы пишете код позади, но не html?! im confused –

+0

@ Ozgur Dogus, Хорошо, я добавил элемент управления EntityEditorWithPicker на мою страницу aspx. И когда я разворачиваю эту страницу на своем сервере, на мой html-страницу добавляется другой код. Но я не знаю, где этот код сгенерирован. Я только пишу такой код на моей странице aspx: andDaviD

Смежные вопросы