【问题标题】:Change html code on server side asp.net更改服务器端asp.net上的html代码
【发布时间】:2012-06-21 22:36:03
【问题描述】:

我想在加载时更改 html 文件中的一些字符串。例如,我有一个 html 文件:

<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”?

[编辑] 对不起,我忘了提 我只能在代码隐藏类中向 html 页面添加任何信息,因为该页面不是由我生成的。 我想我应该使用这样的东西:

1) 加载html文件

2) 找到我的字符串

3) 替换它

4) 发送html文件

有一个aspx页面,但我只添加了部分代码,其他代码由VS添加

【问题讨论】:

  • 这是一个aspx页面吗?那为什么不简单的在aspx文件中添加相关的标签呢?
  • 我做不到,因为html页面不是我生成的。
  • @andDaviD 你应该在一开始就提到这一点 - 很多人都认为你可以控制页面
  • 有一个aspx页面,但我只添加了部分代码,其他代码由VS添加
  • @Duane 和其他人 - 请参阅下面我的更新答案以了解具体情况

标签: c# asp.net html string


【解决方案1】:

除非我遗漏了什么(因为这看起来有点像 ASP.NET 101),否则您有多种选择...

在代码隐藏中创建一个变量,然后使用它...

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

然后在 ASPX 中...

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

否则你可以使用&lt;asp:Literal&gt;控件

更新

经过广泛的chat with @andDaviD 后,发现 javascript 位于 SharePoint Foundation 中的母版页中。

通过&lt;%@ Page 指令中的DynamicMasterPageFile 属性在他的内容页面中引用了母版页,这就是为什么他说他能够更新部分代码,但不能更新其他部分。

我仍然不确定是否可以修改母版页(由他自己或管理员),这需要他从公司负责人那里了解。但我相信向母版页添加属性或方法以提供他需要的内容是唯一明智的选择。

【讨论】:

  • 我做不到,因为html页面不是我生成的。
  • @andDaviD 一开始就指出这一点是有道理的!
【解决方案2】:

您可以使用内联 aspx 代码标签:

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

在代码隐藏中:

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

【讨论】:

  • 我做不到,因为html页面不是我生成的。
  • @andDaviD:这是什么意思,这不是一个aspx页面吗?然后也没有代码隐藏。
  • 有一个aspx页面,但我只添加了部分代码,其他代码由VS添加。
  • @andDaviD:这对我来说毫无意义,你说你的 IDE 阻止你向 aspx 页面添加代码?
  • 好的,我已将 EntityEditorWithPicker 控件添加到我的 aspx 页面。当我在我的服务器上部署这个页面时,它会在我的 html 页面中添加其他代码。但我不知道这段代码是在哪里生成的。我只在我的 aspx 页面中编写了这样的代码:
【解决方案3】:

你可以使用文字:

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

标记:

<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>

【讨论】:

  • 我做不到,因为html页面不是我生成的。
  • 什么...那么标记在哪里呢?在问题中指出这一点会很有用
【解决方案4】:

你可以把它放在asp.net的一个隐藏字段中,然后在后面的代码中更改隐藏字段。

【讨论】:

【解决方案5】:

在你的代码后面:

public string otherString;


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

在 aspx 页面中,将此行放在任何你想看到 otherString 的地方。

<%=otherString%>

【讨论】:

  • 我做不到,因为html页面不是我生成的。
  • 请您再解释一下。你在后面写代码而不是 html ?!我很困惑
  • @Ozgur Dogus,好的,我已将 EntityEditorWithPicker 控件添加到我的 aspx 页面。当我在我的服务器上部署这个页面时,它会在我的 html 页面中添加其他代码。但我不知道这段代码是在哪里生成的。我只在我的 aspx 页面中编写了这样的代码:
猜你喜欢
  • 2013-10-10
  • 1970-01-01
  • 1970-01-01
  • 2011-04-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-07
相关资源
最近更新 更多