MVC使用model属性在视图上创建锚标记

时间:2016-03-29 18:06:35

标签: c# asp.net-mvc razor asp.net-mvc-5

我正在编写一个ASP.NET MVC 5应用程序,我最近在一个页面中添加了锚标记,其中包含了许多操作。我们的想法是,当您返回索引时,您还提供了该操作所涉及的projectID,它会将您从页面跳转到与该projectID匹配的锚点。

这就是说我有一个页面,我试图在视图上创建一个链接到主项目页面,但提供一个片段,以便它跳转到相应的部分。但是我因此无法使用@ Html.ActionLink或任何其他方法来适当地将我带到片段中。我将说明。

<a href="~/backlog/# + @model.ProjectID"><div class="btn">Done</div></a>
@{ <a href="~/backlog/# + @model.ProjectID"><div class="btn">Done</div></a> }

这是我最近一直试图做的事情,但是这个观点似乎并不知道如何处理它。

然后我尝试了更多MVC风格的方法。

@Html.ActionLink("Done", "index", "backlog", null, null, @model.ProjectID.toString());

有一个&#34; mega&#34;我尝试使用七个参数的重载,但它也不喜欢我试图以这种方式将模型属性作为片段传递。

最终,我想提出一个简单的锚标记,一旦处理就会出现

<a href="~/backlog/#projectID"></a>

如果可能的话,所有的帮助都表示赞赏。

2 个答案:

答案 0 :(得分:1)

你仍然可以使用&#34; MVC&#34;如果您使用正确的named parameters

,请使用ActionLink进行操作
public static MvcHtmlString ActionLink(
    this HtmlHelper htmlHelper,
    string linkText,
    string actionName,
    string controllerName,
    string protocol,
    string hostName,
    string fragment,
    object routeValues,
    object htmlAttributes
)

如果您同时使用{{3}},那么人们实际上可以阅读它:

@Html.ActionLink("Done", "index", "backlog", protocol: null, hostName: null, fragment: Model.ProjectID.toString(), routeValues: null, htmlAttributes: null)

答案 1 :(得分:0)

以下内容应该有效:

<a href="@Url.Action("Done")#@Model.ProjectID">backlog</a>