Автогенераторный actionlink панели бритвы?длина=7 в URL?


У меня есть ссылка на странице бритвы ниже.

@Html.ActionLink("Create New Profile", "Create", "Profile", new { @class="toplink" })

Я вижу источник просмотра страницы, который находится ниже

<a href="/admin/profile/create?length=7" class="toplink">Create New Profile</a>

когда я нажимаю на ссылку. URL-адрес, как показано ниже.

http://localhost:54876/admin/profile/create?length=7

Я не хочу ?длина=7. Почему это автоматически генерируется.

3 54

3 ответа:

The ActionLink переопределить вы используете матчей (string linkText, string actionName, Object routeValues, Object htmlAttributes) переопределить. Таким образом, ваше значение" профиль " передается в

Я не уверен, что точная причина этого, но изменить его на:

@Html.ActionLink("Create New Profile", "Create", "Profile", new {}, new { @class="toplink" })

Я не знаю, какую перегрузку MVC выбирает, когда вы оставляете последний параметр (htmlattributes добавил), Но это поможет. На днях я проведу расследование и выясню, что именно происходит.

еще одна вещь, чтобы отметить, так как вы определяете контроллер в @ActionLink, что вам может не понадобиться, например, представление о том, что ваш "создать новый профиль" @ActionLink выражается в может быть " / admin / профиль / индекс.cshtml", представление, в котором перечислены существующие профили, в этом случае вам не нужно определять контроллер в @ActionLink как @ActionLink уже относительно ProfileController, так как @ActionLink может быть

@Html.ActionLink("Create New Profile", "Create", null, new { @class="toplink" })

Я null вместо new{} как отмеченный ответ делает, я думаю, что это более уместно. Перегрузки ActionLink-это не самая простая вещь.