如何在C#.NET后面的代码中使用JavaScript改变img src

时间:2015-01-17 07:24:07

标签: asp.net

这是我的客户代码:

<form id="form1" runat="server">
    <div>
        <img id="mm" runat="server" />
    </div>
    <asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" />
    <script>
        document.onclick = function () {
            mm.src = "photo1.jpg";
        }

    </script>
</form>

我尝试在后面的代码中获取img src,但它返回null:

protected void Button1_Click(object sender, EventArgs e)
{
    string s1= Request.Form["mm"];
    string s2= mm.Attributes["src"];
    string s3 = mm.Src;
}

我该怎么做?

1 个答案:

答案 0 :(得分:4)

你简单不能。在通过javascript进行更改后,您无法在图像的src后面获取代码。

这是因为即使回发也不会将此信息传回服务器。

解决方法是同时将src保存到值的隐藏输入控件...相同的数据。

所以在回发后你从那个输入控件中读取了值,因为只有那种类型的控件才会发回它们的值。

以下是您的代码

的示例
<asp:HiddenField runat="server" ID="ImgExSrc" />

<script>
    document.onclick = function () {
       mm.src = "photo1.jpg";
       document.getElementById("<%=ImgExSrc.ClientID%>").value = mm.src;
    }
</script>

在您背后的代码上,您只需在回帖后阅读ImgExSrc.Value即可。只有回发后,您才能将值发送到服务器端。