目前我有这个:
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="WebUserControl2.ascx.cs" Inherits="Drawing.Usercontrols.WebUserControl2" %>
<asp:Image ID="Image1" runat="server" alt="Image Not Found" ImageUrl="~/images/k8up7l1i.bmp"/>
在webUserControl2.ascx页面中。
在WebUserControl2.ascx.cs页面中,找到所有逻辑。在那里生成图像,然后保存到路径(C:\ Work Drawing \ Drawing \ Drawing \ images) 其中:
string thisPathName = System.Web.Hosting.HostingEnvironment.MapPath("~/Images/" + randomFileName);
我的问题是,我可以从asp页面调用方法“getPathName()”(其中ImageUrl是,而不是静态URL)。所以每当我调用它时,新图像将显示在浏览器中,并在c#代码中生成该路径名?
如果问题不清楚,请通知我。
答案 0 :(得分:5)
答案是,是的,你可以。
让我们假设你在后面的代码中有这个功能:
public string getPathName(){
return "my_image_path.jpg";
}
通过这种方式,您可以采用以下形式:
<img alt="Image Not Found" src="<%=getPathName()%>"/>
然后你去。你从后面的代码中获得了图像路径。
祝你好运。答案 1 :(得分:0)
您不能将函数调用结果分配给服务器控件属性(如ImageUrl),除非该控件位于数据绑定控件(如GridView或Repeater)中。
您可以做的是在代码后面设置ImageUrl,例如在PageLoad事件中:
Image1.ImageUrl = getPathName();
或者,如果您想从asp页面进行操作,并且不需要从服务器引用Image1,请将其渲染为html元素:
<img alt="Image Not Found" src='<%= this.getPathName %>' />
getPathNmae必须受到保护&#39;或者&#39; public&#39;以上工作。