// Copyright (c) Microsoft Open Technologies, Inc. All rights reserved.
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
namespace Microsoft.AspNet.Mvc
{
///
/// Defines the contract for the helper to build URLs for ASP.NET MVC within an application.
///
public interface IUrlHelper
{
///
/// Generates a fully qualified or absolute URL for an action method by using the specified action name,
/// controller name, route values, protocol to use, host name and fragment.
///
/// The name of the action method.
/// The name of the controller.
/// An object that contains the parameters for a route.
/// The protocol for the URL, such as "http" or "https".
/// The host name for the URL.
/// The fragment for the URL.
/// The fully qualified or absolute URL to an action method.
string Action(string action, string controller, object values, string protocol, string host, string fragment);
///
/// Converts a virtual (relative) path to an application absolute path.
///
///
/// If the specified content path does not start with the tilde (~) character,
/// this method returns unchanged.
///
/// The virtual path of the content.
/// The application absolute path.
string Content(string contentPath);
///
/// Returns a value that indicates whether the URL is local.
///
/// The URL.
/// true if the URL is local; otherwise, false.
bool IsLocalUrl(string url);
///
/// Generates a fully qualified or absolute URL for the specified route values by
/// using the specified route name, protocol to use, host name and fragment.
///
/// The name of the route that is used to generate URL.
/// An object that contains the parameters for a route.
/// The protocol for the URL, such as "http" or "https".
/// The host name for the URL.
/// The fragment for the URL.
/// The fully qualified or absolute URL.
string RouteUrl(string routeName, object values, string protocol, string host, string fragment);
}
}