назначение переменной JS переменной razor

<button type="submit" onclick="add(x)"id="add-button" >ADD </button>

<script>
function add(x){
@{
var iWantValueOfxAssignedToThisSomehow=(something)x;
}
}
</script>

Я уже пробовал:

var iWantValueOfxAssignedToThisSomehow=@:x;
and var iWantValueOfxAssignedToThisSomehow=<text>x</text>;

Я также прочитал несколько комментариев об этом, говоря, что это невозможно, так как они не живут в одно и то же время. Мне было интересно, есть ли другой путь вокруг?

1 ответ

  1. Я сделал это раньше, так что это возможно, по памяти вы должны быть в состоянии сделать любой из ниже, пока это на a .страница cshtml

    function myFunction(){
        var value1 = @Model.Value
        var value2 = @(3)
        var value3 = @("Value as a hard coded string")
        //3 examples of how you assign a C# variable to a js variable
    }
    

    Как раз испытано и этот метод работает отлично.

    Чтобы уточнить, почему ваш не работал: вы назначали переменную iWantValueOfxAssignedToThisSomehowв памяти, когда страница выполняется в C#, но вы никогда не назначали ее ничему в js, поэтому функция должна быть пустой при визуализации.

    Что касается комментариев, о которых вы читали; они говорят о том, что переменная C# назначается только каждый раз, когда она назначена, и она не может быть изменена js, так как в этот момент она находится вне сервера, где выполняется C#.

    Edit: в то время как выше действительно это было не то, что вы искали, невозможно передать переменные JS в C#, так как C# выполняется на стороне сервера, а JS выполняется на стороне клиента