残念ながら、私はこのトピックの研究に成功しませんでした。アンカータグを使用して、これを行うことができました。
<a href="..."> My Link ® </a>
今私はHtml.Actionlinkで同じものが欲しいです:
@Html.ActionLink("My Link ®", "Action")
ただし、出力は入力と同じであり、意図したとおりのregシンボルではありません。何か案が?
前もって感謝します!
残念ながら、私はこのトピックの研究に成功しませんでした。アンカータグを使用して、これを行うことができました。
<a href="..."> My Link ® </a>
今私はHtml.Actionlinkで同じものが欲しいです:
@Html.ActionLink("My Link ®", "Action")
ただし、出力は入力と同じであり、意図したとおりのregシンボルではありません。何か案が?
前もって感謝します!
@Html.ActionLink("My Link ®", "Action")
また
<a href="@Url.Action("Action")"> My Link ® </a>
HtmlString
(.NET 2 / MVC 2MvcHtmlString
では)を使用して、再エンコードしたくないことを示すことができます。
@Html.ActionLink(new HtmlString("My Link ®"), "Action");
MVC 2でこれを解決した方法は次のとおりです。
/// <summary>
/// Creates an anchor tag based on the passed in controller type and method.
/// Does NOT encode passed in link text.
/// </summary>
/// <typeparam name="TController">The controller type</typeparam>
/// <param name="htmlHelper">The HTML helper</param>
/// <param name="action">The method to route to</param>
/// <param name="linkText">The linked text to appear on the page</param>
/// <returns>A formatted anchor tag</returns>
public static MvcHtmlString ActionLink<TController>( this HtmlHelper htmlHelper,
Expression<Action<TController>> action,
HtmlString linkText ) where TController : Controller
{
return ActionLink( htmlHelper, action, linkText, null, null );
}
/// <summary>
/// Creates an anchor tag based on the passed in controller type and method.
/// Does NOT encode passed in link text.
/// </summary>
/// <typeparam name="TController">The controller type</typeparam>
/// <param name="htmlHelper">The HTML helper</param>
/// <param name="action">The method to route to</param>
/// <param name="linkText">The linked text to appear on the page</param>
/// <param name="routeValues">The route values</param>
/// <param name="htmlAttributes">The HTML attributes</param>
/// <returns>A formatted anchor tag</returns>
public static MvcHtmlString ActionLink<TController>( this HtmlHelper htmlHelper,
Expression<Action<TController>> action,
HtmlString linkText,
object routeValues,
object htmlAttributes ) where TController : Controller
{
var routingValues = GetRouteValuesFromExpression( action, routeValues );
var url = UrlHelper.GenerateUrl( null, //routeName
null, //actionName
null, //controllerName
routingValues,
htmlHelper.RouteCollection,
htmlHelper.ViewContext.RequestContext,
false ); //includeImplicitMvcValues
var tagBuilder = new TagBuilder("a")
{
InnerHtml = !String.IsNullOrEmpty( linkText.ToString() ) ? linkText.ToString() : String.Empty
};
tagBuilder.MergeAttributes( (IDictionary<string, object>)htmlAttributes );
tagBuilder.MergeAttribute( "href", url );
return MvcHtmlString.Create( tagBuilder.ToString( TagRenderMode.Normal ) );
}
MVC futures NuGet パッケージのように、強く型付けされています。したがって、次のように使用できます。
<%= Html.ActionLink<HomeController>( x => x.Index(),
new HtmlString( "Don't Encode Me!<sup>®</sup>" ) ) %>
ActionLink は常に、リンク テキストに HttpUtility.Encode の呼び出しを使用します。
次のように UrlHelper メソッドを使用できます
<a href="@Url.Action("Action")">My Link ®</a>