Ответ 1
Есть две "мегаперегрузки" 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.
В вашем случае это будет (и обратите внимание на параметр "фрагмент" в частности):
<%= Html.ActionLink(Model[x].Title, "Index", "q",
/* protocol */ null, /* hostName */ null, /* fragment */ "1",
new { slug = Model[x].TitleSlug, id = Model[x].PostID }, null) %>
С помощью "мегаперегрузок" вы можете оставить большинство значений параметров равными нулю, и они получат соответствующие значения по умолчанию.