路径是javascript路径
var fileName = args.get_fileName(); lstImg.src = <%=GetListImageFilePath(fileName) %>
文件名是错误的,因为它是 javascript 而不是 .NET 如何将此参数放入 .NET 代码中
路径是javascript路径
var fileName = args.get_fileName(); lstImg.src = <%=GetListImageFilePath(fileName) %>
文件名是错误的,因为它是 javascript 而不是 .NET 如何将此参数放入 .NET 代码中
您需要使用 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;
});
你不能。JavaScript 在客户端运行,asp.net 代码在服务器上。您需要使用其他方式与服务器通信,例如:Ajax 到 Web 服务、回发等
您根本无法做到这一点,因为 javascript 在客户端运行,即在服务器代码在服务器上运行的浏览器上运行。您可以做的是更改GetListImageFilePath函数,使其返回图像目录的基本 URL,然后附加文件名以创建图像路径。
var fileName = args.get_fileName();
lstImg.src = <%=GetListImageFilePath() %> + '/' + fileName;
有关更多信息,例如如何处理 Javascript 中的服务器标签,我已在此处回答了StackOverFlow 线程。请看一下以澄清您的疑问。
我认为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 函数,则声明一个等效的服务器端函数。
在您的网站中添加一个 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;
}
}
}