Подтвердить что ты не робот

MVC 4 - Razor - передать переменную в URL href

Как передать переменную в URL?

Я пытаюсь это сделать, но это не работает. Этот URL-адрес показывает это только:

http://myurltest.com, а не полный путь

@if(check1 != "d")
{    
    <li>
        <div class="a"></div>
    </li>
    <li>
        <div class="b"></div>
    </li>
    <li>
        <a href="#" onclick="location.href='http://myurltest.com/'; return false;" + @check1 + "/go/5/true">
        <div class="c"></div>
        </a>
    </li>
}
4b9b3361

Ответ 1

Вот так:

<a href='@string.Format("http://myurltest.com/{0}/go/5/true", check1)'>

Дело в том, чтобы вставить весь URL-адрес в разметку, а не комбинировать разметку и части кода.

Ответ 2

Если это указывает на действие вашего сайта/приложения, вы должны использовать

@Url.Action(your parameters)

внутри вашего атрибута href.

Обратите внимание, что вы также можете создать полную ссылку с помощью

@Html.ActionLink(your parameters)

Это перегруженные методы, Intellisense или Google будут описывать все возможные альтернативы.

Обычно для ссылок на действия одного и того же веб-сайта эти методы лучше, чем манипулировать строкой url, как предлагаемый "http://myurltest.com/@check1/go/5/true", потому что они могут использоваться на локальной машине (где базовый URL-адрес - localhost: someport) и лучше, чем "@check1/go/5/true" (относительный путь), поскольку устраняет несоответствия URL-адреса развертывания.

С другой стороны, если ссылка указывает на внешний ресурс, то что-то вроде предлагаемого <a href="http://myurltest.com/@check1/go/5/true"> в порядке.

Хороший день,

Альберто

Ответ 3

Попробуйте это, он работает

  <a href="http://myurltest.com/@check1/go/5/true">

Ответ 4

попробуйте следующее:

<a href="@Url.Content("~/id?" + check1)">click here</a>

Ответ 5

Использование интерполяции строк в С# 6

<a href="@($"http://myurltest.com/{check1}/go/5/true")" >

Wiki

В компьютерном программировании интерполяция строк или интерполяция переменных (также подстановка переменных или расширение переменных) - это процесс оценки строкового литерала, содержащего один или несколько заполнителей, что дает результат, в котором замещающие элементы заменяются соответствующими значениями. Это форма простой обработки шаблонов. 2 или формально термин форма Quasi-quotation (или интерпретация логической подстановки). Строчная интерполяция позволяет упростить и интуитивно понятное форматирование строк и спецификацию содержимого по сравнению с конкатенацией строк.

MSDN