如何在Form的action属性中调用VB.NET函数?
解决ASP.NET表单Action属性服务器端代码未解析的问题
问题核心是带runat="server"的服务器端表单,ASP.NET会自动接管Action属性的生成,直接在前端写<%= %>或<% %>语法不会被解析,而是被当作普通字符串输出,所以才会出现URL中包含<%=%20AllowedURL()%20%>的情况,导致400错误。
你可以通过以下两种方式修复:
方式一:后台代码设置Action属性
保留runat="server"的表单,在后台代码(比如Page_Load事件)中设置Action值:
protected void Page_Load(object sender, EventArgs e) { form1.Action = AllowedURL(); }
方式二:使用普通HTML表单
如果不需要服务器端表单的特性,去掉runat="server",这样前端的服务器端代码会被正常解析:
<form id="form1" action="<%= AllowedURL() %>"> <!-- 表单内容 --> </form>
额外检查点:
- 确保你的页面后缀是
.aspx,只有ASP.NET页面才会解析<%= %>这类服务器端代码;如果是.html后缀,服务器不会处理这类语法,直接原样输出。
内容的提问来源于stack exchange,提问作者kaz00ie
相关产品推荐
相关产品推荐

