Как создать дружественный URL-адрес в файле CS

104
9

Я знаю, как создать URL-адрес, используя html.actionlink в файле aspx. Но если я хочу создать тот же url в коде за файлом, как бы я это сделал?

спросил(а) 2021-01-28T00:07:14+03:00 4 недели, 1 день назад
1
Решение
61

Код идеи для представлений в MVC был удален, потому что это действительно не соответствовало парадигме MVC. Возможно, вам стоит подумать о создании собственных помощников Html. Выполнение этого, расширение существующих действий, таких как Html.ActionLink(), легко (и кучи удовольствия).


В этом примере показано, как я создал помощника для настройки ссылок на логин/выход из системы. Некоторые ppl могут утверждать, полезно ли это для помощника, но это работает для меня:


    /// <summary>
/// For the global MasterPage footer
/// </summary>
/// <returns></returns>
public static string FooterEditLink(this HtmlHelper helper,
System.Security.Principal.IIdentity user, string loginText, string logoutText)
{
if (user.IsAuthenticated)
return System.Web.Mvc.Html.LinkExtensions.ActionLink(helper, logoutText, "Logout", "Account",
new { returnurl = helper.ViewContext.HttpContext.Request.Url.AbsolutePath }, null);
else
return System.Web.Mvc.Html.LinkExtensions.ActionLink(helper, loginText, "Login", "Account",
new { returnurl = helper.ViewContext.HttpContext.Request.Url.AbsolutePath }, null);
}

.. и вот как я использую его в представлении (точнее, частичный вид):


<% =Html.FooterEditLink(HttpContext.Current.User.Identity, "Edit", "Logout (" + HttpContext.Current.User.Identity.Name + ")")%>

ответил(а) 2021-01-28T00:07:14+03:00 4 недели, 1 день назад
44

Взгляните на это сообщение Скотта Митчелла


http://scottonwriting.net/sowblog/posts/14011.aspx

(Поскольку вы говорите "html.actionlink", который является экземпляром класса UrlHelper, я предполагаю, что вы находитесь в контексте, когда у вас нет доступа к экземпляру класса UrlHelper)

ответил(а) 2021-01-28T00:07:14+03:00 4 недели, 1 день назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема