从master获取正确的* .aspx页面以获取JS

时间:2015-03-05 10:40:36

标签: javascript c# asp.net url webforms

我有一个母版页,其中一些脚本调用web方法。我的内容页面继承自中间基类,实现了[WebMethod] void SetSomeParam(bool flag)。问题是母版页中的脚本不知道,他需要哪个网址~/default1.aspx/SetSomeParam~/default2.aspx/SetSomeParam
如何从主页面获取正确的URL(请不要使用代码隐藏)。


更新:<%=Page.ToString()%>/SetSomeParam提供ASP.pages_default1_aspx/SetSomeParam之类的输出,但工作网址必须为default.aspx/SetSomeParam

3 个答案:

答案 0 :(得分:2)

有两种方法可以在客户端获取页面名称。

  1. 从window.location.pathname

    中提取它
    var url = window.location.pathname;  
    var myPageName = url.substring(url.lastIndexOf('/') + 1);      
    alert(myPageName);  
    
  2. 使用Asp.net的Path.GetFileName

    var page = '<%=Path.GetFileName(Request.Path)%>'
    

答案 1 :(得分:-1)

您可以在主页JS中创建一个有效的URL,如下所示:

var url = document.URL.replace(/\/?$/, '/') + 'SetSomeParam';

答案 2 :(得分:-1)

您可以使用表单操作。

您的页面中应该有一个表单元素:

<form id="form1" action="default1.aspx" method="post" name="form1">

您可以使用以下内容检索操作:

document.getElementById("form1").action