这是我的代码的一部分
此
<%= Html.ActionLink(Model[x].Title, "Index", "q", new { slug = Model[x].TitleSlug, id = Model[x].PostID }, null)%>
生成此网址
http://localhost:61158/q/is_there_another_indiana_jones_movie_in_the_works/4
但是我想生成一个带有片段的url,如下所示:
http://localhost:61158/q/is_there_another_indiana_jones_movie_in_the_works/4#1
有没有办法使用HTML.ActionLink函数执行此操作?
答案 0 :(得分:22)
ActionLink有两个带有片段参数的“超级重载”:
public static string ActionLink(this HtmlHelper htmlHelper,
string linkText, string actionName, string controllerName,
string protocol, string hostName, string fragment, object routeValues,
object htmlAttributes);
public static string ActionLink(this HtmlHelper htmlHelper,
string linkText, string actionName, string controllerName,
string protocol, string hostName, string fragment,
RouteValueDictionary routeValues, IDictionary<string, object> htmlAttributes);
有关重载的详细信息,请参阅MSDN。
在你的情况下它会是(并特别注意“fragment”参数):
<%= Html.ActionLink(Model[x].Title, "Index", "q",
/* protocol */ null, /* hostName */ null, /* fragment */ "1",
new { slug = Model[x].TitleSlug, id = Model[x].PostID }, null) %>
使用“mega overloads”,您可以将大多数参数值保留为null,并且它们将获得相应的默认值。
答案 1 :(得分:2)
您需要致电this overload
答案 2 :(得分:0)
MVC 5支持片段。(请参阅https://msdn.microsoft.com/en-us/library/dd460522(v=vs.118).aspx和https://msdn.microsoft.com/en-us/library/dd492938(v=vs.118).aspx。)所以您的代码将是
Html.ActionLink(Model[x].Title, "Index", "q", new { slug = Model[x].TitleSlug, id = Model[x].PostID }, null, "1", null, null)