本文整理汇总了C#中System.Web.Mvc.UrlHelper类的典型用法代码示例。如果您正苦于以下问题:C# UrlHelper类的具体用法?C# UrlHelper怎么用?C# UrlHelper使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
UrlHelper类属于System.Web.Mvc命名空间,在下文中一共展示了UrlHelper类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Applies
public bool Applies(ShoppingCartQuantityProduct quantityProduct, IEnumerable<ShoppingCartQuantityProduct> cartProducts) {
if (DiscountPart == null) return false;
var now = _clock.UtcNow;
if (DiscountPart.StartDate != null && DiscountPart.StartDate > now) return false;
if (DiscountPart.EndDate != null && DiscountPart.EndDate < now) return false;
if (DiscountPart.StartQuantity != null &&
DiscountPart.StartQuantity > quantityProduct.Quantity)
return false;
if (DiscountPart.EndQuantity != null &&
DiscountPart.EndQuantity < quantityProduct.Quantity)
return false;
if (!string.IsNullOrWhiteSpace(DiscountPart.Pattern)) {
string path;
if (DiscountPart.DisplayUrlResolver != null) {
path = DiscountPart.DisplayUrlResolver(quantityProduct.Product);
}
else {
var urlHelper = new UrlHelper(_wca.GetContext().HttpContext.Request.RequestContext);
path = urlHelper.ItemDisplayUrl(quantityProduct.Product);
}
if (!path.StartsWith(DiscountPart.Pattern, StringComparison.OrdinalIgnoreCase))
return false;
}
if (DiscountPart.Roles.Any()) {
var user = _wca.GetContext().CurrentUser;
if (user.Has<UserRolesPart>()) {
var roles = user.As<UserRolesPart>().Roles;
if (!roles.Any(r => DiscountPart.Roles.Contains(r))) return false;
}
}
return true;
}
示例2: ImageActionLink
public static MvcHtmlString ImageActionLink(
this HtmlHelper helper,
string imageUrl,
string altText,
string actionName,
string controllerName,
object routeValues,
object linkHtmlAttributes,
object imgHtmlAttributes)
{
var linkAttributes = AnonymousObjectToKeyValue(linkHtmlAttributes);
var imgAttributes = AnonymousObjectToKeyValue(imgHtmlAttributes);
var imgBuilder = new TagBuilder("img");
imgBuilder.MergeAttribute("src", imageUrl);
imgBuilder.MergeAttribute("alt", altText);
imgBuilder.MergeAttributes(imgAttributes, true);
var urlHelper = new UrlHelper(helper.ViewContext.RequestContext, helper.RouteCollection);
var linkBuilder = new TagBuilder("a");
linkBuilder.MergeAttribute("href", urlHelper.Action(actionName, controllerName, routeValues));
linkBuilder.MergeAttributes(linkAttributes, true);
var text = linkBuilder.ToString(TagRenderMode.StartTag);
text += imgBuilder.ToString(TagRenderMode.SelfClosing);
text += linkBuilder.ToString(TagRenderMode.EndTag);
return MvcHtmlString.Create(text);
}
示例3: Application_PostAuthenticateRequest
protected void Application_PostAuthenticateRequest(Object sender, EventArgs e)
{
try
{
HttpCookie authCookie = Request.Cookies[FormsAuthentication.FormsCookieName];
if (authCookie != null)
{
FormsAuthenticationTicket authTicket = FormsAuthentication.Decrypt(authCookie.Value);
JavaScriptSerializer serializer = new JavaScriptSerializer();
if (authTicket.UserData == "OAuth") return;
var currentUser = serializer.Deserialize<CurrentUserPrincipal>(authTicket.UserData);
currentUser.SetIdentity(authTicket.Name);
HttpContext.Current.User = currentUser;
}
}
catch (Exception ex)
{
ErrorSignal.FromCurrentContext().Raise(ex);
FormsAuthentication.SignOut();
HttpCookie oldCookie = new HttpCookie(".ASPXAUTH");
oldCookie.Expires = DateTime.Now.AddDays(-1);
Response.Cookies.Add(oldCookie);
HttpCookie ASPNET_SessionId = new HttpCookie("ASP.NET_SessionId");
ASPNET_SessionId.Expires = DateTime.Now.AddDays(-1);
Response.Cookies.Add(ASPNET_SessionId);
var urlHelper = new UrlHelper(HttpContext.Current.Request.RequestContext);
Response.Redirect(urlHelper.Action(MVC.OAuth.ActionNames.SignIn, MVC.OAuth.Name));
}
}
示例4: GetNotifications
public IEnumerable<NotifyEntry> GetNotifications() {
if ( string.IsNullOrWhiteSpace(_orchardServices.WorkContext.CurrentSite.BaseUrl)) {
var urlHelper = new UrlHelper(_workContext.HttpContext.Request.RequestContext);
var url = urlHelper.Action("Index", "Admin", new {Area = "Settings"});
yield return new NotifyEntry { Message = T("The Warmup feature needs the <a href=\"{0}\">Base Url site setting</a> to be set.", url), Type = NotifyType.Warning };
}
}
示例5: EntryToEntryViewModelMapper
public EntryToEntryViewModelMapper(
IDocumentSession session,
UrlHelper urlHelper)
{
this.session = session;
this.urlHelper = urlHelper;
}
示例6: SetLinks
protected void SetLinks(AtomEntry e)
{
LogService.Debug("AnnotateService.SetLinks entryId={0}", e.Id);
var links = e.Links.ToList();
var url = new UrlHelper(Container.GetInstance<RequestContext>());
//atom threading extension
if (e.InReplyTo != null)
{
e.InReplyTo.Href = url.RouteIdUri("AtomPubResource", e.InReplyTo.Ref, AbsoluteMode.Force);
links.Merge(new AtomLink
{
Rel = "related",
Type = "text/html",
Href = url.RouteIdUri("AtomPubResource", e.InReplyTo.Ref, AbsoluteMode.Force)
});
}
//atom threading extension
links.Merge(new AtomLink
{
Href = url.RouteIdUri("AnnotateEntryAnnotationsFeed", e.Id, AbsoluteMode.Force),
Rel = "replies",
Type = Atom.ContentType,
Count = e.Total,
Updated = DateTimeOffset.UtcNow
});
e.Links = links;
}
示例7: HandleUnauthorizedRequest
protected override void HandleUnauthorizedRequest(AuthorizationContext context)
{
if (context.HttpContext.Request.IsAjaxRequest())
{
var urlHelper = new UrlHelper(context.RequestContext);
context.HttpContext.Response.StatusCode = 403;
context.Result = new JsonResult
{
Data = new
{
Error = "NoPermission",
LogOnUrl = urlHelper.Action("index", "login")
},
JsonRequestBehavior = JsonRequestBehavior.AllowGet
};
}
else
{
context.Result = new RedirectToRouteResult(
new RouteValueDictionary
{
{ "action", "index" },
{ "controller", "error" },
{ "id", (int)ErrorType.NoPermission},
{"returnurl",context.RequestContext.HttpContext.Request.Url}
});
}
}
示例8: Generate
public static string Generate(RequestContext requestContext, NavigationRequest navigationItem, RouteValueDictionary routeValues)
{
if (requestContext == null)
throw new ArgumentNullException("requestContext");
if (navigationItem == null)
throw new ArgumentNullException("navigationItem");
var urlHelper = new UrlHelper(requestContext);
string generatedUrl = null;
if (!string.IsNullOrEmpty(navigationItem.RouteName))
{
generatedUrl = urlHelper.RouteUrl(navigationItem.RouteName, routeValues);
}
else if (!string.IsNullOrEmpty(navigationItem.ControllerName) && !string.IsNullOrEmpty(navigationItem.ActionName))
{
generatedUrl = urlHelper.Action(navigationItem.ActionName, navigationItem.ControllerName, routeValues, null, null);
}
else if (!string.IsNullOrEmpty(navigationItem.Url))
{
generatedUrl = navigationItem.Url.StartsWith("~/", StringComparison.Ordinal)
? urlHelper.Content(navigationItem.Url)
: navigationItem.Url;
}
else if (routeValues.Any())
{
generatedUrl = urlHelper.RouteUrl(routeValues);
}
return generatedUrl;
}
示例9: GenerateContentUrl
public string GenerateContentUrl(string relativePath)
{
var httpRequest = GetCurrentRequest();
var urlHelper = new UrlHelper(httpRequest.RequestContext, RouteTable.Routes);
return urlHelper.Content(relativePath);
}
示例10: RenderApplicationUrls
public static IHtmlString RenderApplicationUrls(this HtmlHelper helper)
{
var url = new UrlHelper(helper.ViewContext.RequestContext);
var applicationUrls = new
{
LoginUrl = url.Action(MVC.Authentication.Login()),
LogoutUrl = url.Action(MVC.Authentication.Logout()),
LoginCheckUrl = url.Action(MVC.Authentication.LoginCheck()),
ListUsersUrl = url.Action("Index", "Api/Users"),
CreateUserUrl = url.Action("Create", "Api/Users"),
UpdateUserUrl = url.Action("Update", "Api/Users"),
DeleteUsersUrl = url.Action("Delete", "Api/Users"),
ListDashboardPermissionsUrl = url.Action("Index", "Api/DashboardPermissions"),
ListMessagesUrl = url.Action("Index", "Api/Messages"),
CreateMessageUrl = url.Action("Create", "Api/Messages"),
DeleteMessagesUrl = url.Action("Delete", "Api/Messages"),
ListOrganizationsUrl = url.Action("Index", "Api/Organizations"),
CreateOrganizationUrl = url.Action("Create", "Api/Organizations"),
UpdateOrganizationUrl = url.Action("Update", "Api/Organizations"),
DeleteOrganizationsUrl = url.Action("Delete", "Api/Organizations"),
ListRolesUrl = url.Action("Index", "Api/Roles")
};
var script = @"<script type='text/javascript'>
angular.module('colorSoft').constant('ApplicationUrls', <INSERT_URLS>);
</script>".Replace("<INSERT_URLS>", CreateJavascriptHash(applicationUrls));
return MvcHtmlString.Create(script);
}
示例11: PackageListViewModel
public PackageListViewModel(
IQueryable<Package> packages,
DateTime? indexTimestampUtc,
string searchTerm,
int totalCount,
int pageIndex,
int pageSize,
UrlHelper url,
string curatedFeed)
{
// TODO: Implement actual sorting
IEnumerable<ListPackageItemViewModel> items = packages.ToList().Select(pv => new ListPackageItemViewModel(pv));
PageIndex = pageIndex;
IndexTimestampUtc = indexTimestampUtc;
PageSize = pageSize;
TotalCount = totalCount;
SearchTerm = searchTerm;
int pageCount = (TotalCount + PageSize - 1) / PageSize;
var pager = new PreviousNextPagerViewModel<ListPackageItemViewModel>(
items,
PageIndex,
pageCount,
page => curatedFeed == null ?
url.PackageList(page, searchTerm) :
url.CuratedPackageList(page, searchTerm, curatedFeed)
);
Items = pager.Items;
FirstResultIndex = 1 + (PageIndex * PageSize);
LastResultIndex = FirstResultIndex + Items.Count() - 1;
Pager = pager;
}
示例12: ActionImage
/// <summary>
/// Creates and Action link with a clickable image instead of text.
/// </summary>
/// <param name="helper"></param>
/// <param name="controller">Controller</param>
/// <param name="action">Action</param>
/// <param name="parameters">Parameters</param>
/// <param name="src">Image source</param>
/// <param name="alt">Alternate text(Optional)</param>
/// <returns>An HTML anchor tag with a nested image tag.</returns>
public static MvcHtmlString ActionImage(this HtmlHelper helper, String controller, String action, Object parameters, String src, String alt = "", String title = "")
{
var tagBuilder = new TagBuilder("img");
var urlHelper = new UrlHelper(helper.ViewContext.RequestContext);
var url = urlHelper.Action(action, controller, parameters);
var imgUrl = urlHelper.Content(src);
var image = "";
var html = new StringBuilder();
// build the image tag.
tagBuilder.MergeAttribute("src", imgUrl);
tagBuilder.MergeAttribute("alt", alt);
tagBuilder.MergeAttribute("width", "100");
tagBuilder.MergeAttribute("height", "100");
tagBuilder.MergeAttribute("title", title);
image = tagBuilder.ToString(TagRenderMode.SelfClosing);
html.Append("<a href=\"");
html.Append(url);
html.Append("\">");
html.Append(image);
html.Append("</a>");
return MvcHtmlString.Create(html.ToString());
}
示例13: BuildMainMenuItems
/// <summary>
/// Builds main menu
/// </summary>
public static MvcHtmlString BuildMainMenuItems(this HtmlHelper helper, UrlHelper urlHelper, string activeItemTitle)
{
var sb = new StringBuilder();
var menuItems = new[]{
new MenuItem("Главная", urlHelper.RouteUrl("Main")),
new MenuItem("Программы",urlHelper.RouteUrl("AllTravels")),
new MenuItem("Расписание", urlHelper.RouteUrl("EventSchedule")),
new MenuItem("Статьи", urlHelper.RouteUrl("AllArticles")),
new MenuItem("Фотогалерея", urlHelper.RouteUrl("AllAlbums")),
new MenuItem("Книги", urlHelper.RouteUrl("AllBooks")),
new MenuItem("Новости", urlHelper.RouteUrl("AllNews")),
new MenuItem("Отзывы", "javascript:notImplemented()"),
new MenuItem("Цены", "javascript:notImplemented()"),
new MenuItem("Контакты", "javascript:notImplemented()")
};
foreach (var menuItem in menuItems)
{
sb.AppendLine(
string.Format("<li {0}><a href='{1}'>{2}</a></li>",
(menuItem.Title == activeItemTitle) ? "class='active'" : string.Empty,
menuItem.Url,
menuItem.Title));
}
return new MvcHtmlString(sb.ToString());
}
示例14: OnActionExecuted
/// <summary>
/// Called by the ASP.NET MVC framework after the action method executes.
/// </summary>
/// <param name="filterContext">The filter context.</param>
public override void OnActionExecuted(ActionExecutedContext filterContext)
{
if (filterContext == null || !filterContext.HttpContext.Request.IsAjaxRequest())
{
return;
}
// Preparing Json object for AJAX.success processing in forms.js javascript
string destinationUrl = string.Empty;
if (filterContext.Result is RedirectResult)
{
var result = filterContext.Result as RedirectResult;
destinationUrl = UrlHelper.GenerateContentUrl(result.Url, filterContext.HttpContext);
}
if (filterContext.Result is RedirectToRouteResult)
{
var result = filterContext.Result as RedirectToRouteResult;
var helper = new UrlHelper(filterContext.RequestContext);
destinationUrl = helper.RouteUrl(result.RouteValues);
}
// Rendered context is getting reloaded by AJAX.success in forms.js javascript
if (filterContext.Result is ViewResult)
{
return;
}
var jsonResult = new JsonResult { Data = new { resultType = "Redirect", redirectUrl = destinationUrl } };
filterContext.Result = jsonResult;
}
示例15: Rsd
public ActionResult Rsd(string blogPath) {
Logger.Debug("RSD requested");
BlogPart blogPart = _blogService.Get(blogPath);
if (blogPart == null)
return HttpNotFound();
const string manifestUri = "http://archipelago.phrasewise.com/rsd";
var urlHelper = new UrlHelper(ControllerContext.RequestContext, _routeCollection);
var url = urlHelper.Action("", "", new { Area = "XmlRpc" });
var options = new XElement(
XName.Get("service", manifestUri),
new XElement(XName.Get("engineName", manifestUri), "Orchard CMS"),
new XElement(XName.Get("engineLink", manifestUri), "http://orchardproject.net"),
new XElement(XName.Get("homePageLink", manifestUri), "http://orchardproject.net"),
new XElement(XName.Get("apis", manifestUri),
new XElement(XName.Get("api", manifestUri),
new XAttribute("name", "MetaWeblog"),
new XAttribute("preferred", true),
new XAttribute("apiLink", url),
new XAttribute("blogID", blogPart.Id))));
var doc = new XDocument(new XElement(
XName.Get("rsd", manifestUri),
new XAttribute("version", "1.0"),
options));
Response.Cache.SetCacheability(HttpCacheability.NoCache);
return Content(doc.ToString(), "text/xml");
}