0

路径是javascript路径

    var fileName = args.get_fileName();
    lstImg.src = <%=GetListImageFilePath(fileName) %>

文件名是错误的,因为它是 javascript 而不是 .NET 如何将此参数放入 .NET 代码中

4

5 回答 5

3

您需要使用 AJAX。一种简单的方法是使用 PageMethods。首先,[WebMethod]为您的方法添加一个属性:

[WebMethod]
protected static string GetListImageFilePath(string fileName)
{

此方法必须是静态的。

然后EnablePageMethods="True"在你的脚本管理器上设置。然后你可以像这样从 JavaScript 调用你的 c# 代码:

var fileName = args.get_fileName();
PageMethods.GetListImageFilePath(fileName, function (path) {
    lstImg.src = path;
});
于 2012-08-01T05:43:12.560 回答
1

你不能。JavaScript 在客户端运行,asp.net 代码在服务器上。您需要使用其他方式与服务器通信,例如:Ajax 到 Web 服务、回发等

于 2012-08-01T05:27:32.247 回答
0

您根本无法做到这一点,因为 javascript 在客户端运行,即在服务器代码在服务器上运行的浏览器上运行。您可以做的是更改GetListImageFilePath函数,使其返回图像目录的基本 URL,然后附加文件名以创建图像路径。

var fileName = args.get_fileName();
lstImg.src = <%=GetListImageFilePath() %> + '/' + fileName;

有关更多信息,例如如何处理 Javascript 中的服务器标签,我已在此处回答了StackOverFlow 线程。请看一下以澄清您的疑问。

于 2012-08-01T05:33:48.223 回答
0

我认为get_fileName()是服务器端功能。所以你可以直接从 HTML 中调用它。检查这些链接

http://weblogs.asp.net/jalpeshpvadgama/archive/2012/01/07/asp-net-page-methods-with-parameters.aspx http://stackoverflow.com/questions/7633557/asp-net-is -it-possible-to-call-methods-within-server-tag-using-eval

如果您使用RegisterStartupScript()or 调用 javascript 函数,RegisterClientScriptBlock()那么这些函数将在客户端而不是服务器端调用。

如果您想立即在服务器端调用 javascript 函数,则声明一个等效的服务器端函数。

于 2012-08-01T05:40:46.000 回答
0

在您的网站中添加一个 ashx(http 处理程序),然后您可以使用 lstImg.src = '/example.ashx?name=' + fileName.

public class ExampleHandler: IHttpHandler {

    public void ProcessRequest (HttpContext context) {
    var request = context.Request;
        string fileName = (string)request.QueryString["name"];
        // your logic
        context.Response.Write(yourpath)
    }

    public bool IsReusable {
    get {
        return false;
    }
    }
}
于 2012-08-01T05:41:14.633 回答