是否可以使用包含元素的ActionLink?

Wil*_*Wil 12 c# syntax actionlink razor asp.net-mvc-3

正如问题所说,是否可以使用包含元素的ActionLink,如果没有,实现它的最佳方法是什么?

例如,假设我有一个Span元素,我希望整个事情是一个超链接...以下工作:

<a href="/Site/Page/@Model.ID?Type=test">
                <span class="box5">Click anywhere in this box</span> </a>
Run Code Online (Sandbox Code Playgroud)

想象一下,span/css类box5使这个大...原来是一个DIV,但是,我发现它没有遵循标准,这似乎遵循确定.

这呈现并且工作正常,但是,无论如何使用ActionLink代替?我试图猜测语法,如(从表单复制):

@using (Html.Actionlink){<span class="box5">Click anywhere in this box</span>}
Run Code Online (Sandbox Code Playgroud)

没有任何运气的许多其他组合.

现在,我的手动HTML解决方法工作正常,我很高兴离开它,但是,是否可以使用MVC ActionLink,如果是,我是否应该担心/是否会有任何好处?

Mic*_*tum 29

只需使用@ Url.Action:

<a href="@Url.Action("Page","Site", new { id = Model.Id, @Type = "test" })">
 <span class="box5">Click anywhere in this box</span> </a>
Run Code Online (Sandbox Code Playgroud)


Jas*_*son 5

有一个hack你可以用来解决这个限制

@Html.Raw(
     Html
        .ActionLink("-replace-me-", .....)
        .ToString()
        .Replace(
              "-replace-me-", 
              @"<span class=""box5"">Click anywhere in this box</span>"))
Run Code Online (Sandbox Code Playgroud)

它并不优雅,但却能胜任