ASP.NET: получение текущего URL-адреса с помощью веб-метода?

Я пытаюсь получить URL текущей страницы с помощью веб-метода. Приведенный ниже код хорошо работает с обычным методом C#, таким как Page_Load, но не работает внутри веб-метода.

[WebMethod(EnableSession=true)]
public static void UpdateProjectName(string name)
{
        string project_id = HttpContext.Current.Request.Url.ToString();
}

Я получаю пустую строку ("") в качестве project_id. Что я делаю неправильно?

3 ответа

Решение

Чтобы получить информацию о запросе клиента на предварительный просмотр текущего веб-сайта, вы можете использовать UrlReferrer следующим образом:

//To get the Absolute path of the URI use this
string myPreviousAbsolutePath = Page.Request.UrlReferrer.AbsolutePath;

//To get the Path and Query of the URI use this
string myPreviousPathAndQuery = Page.Request.UrlReferrer.PathAndQuery;

Ты нуждаешься в этом:

[WebMethod]
public static string mywebmethod()
{
string myUrl=  HttpContext.Current.Request.UrlReferrer.PathAndQuery.ToString();
return parameters
}

Попробуйте сделать следующий код:

[WebMethod(EnableSession=true)]
public static void UpdateProjectName(string name)
{
        string project_id = HttpContext.Current.Request.Url.AbsoluteUri.ToString();
}

Url это просто объект, поэтому он возвращает вам пустое значение. AbsoluteUri даст полный URL текущей страницы. Пример: http://yourweb.site/Admin.aspx?id=15&time=yesterday

Другие вопросы по тегам