2013-04-04 3 views
2

Как получить доступ к переменной JavaScript в фрагменте кода C# в представлении Razor? Вот пример того, что я имею в виду:Переменная JavaScript в C# Statement в Razor MVC

function mixIt(id) { 
    var markup = '<div>' + @Model.Shaker.FirstOrDefault(x => x.ShakerID == id) + '</div>'; 
    return markup; 
} 

Обратите внимание, где я проверяю идентификатор, этот идентификатор является параметром javascript. Код выше не работает, и я не знаю, как заставить его работать. Поиск Google не принес ничего полезного.

+2

Вы не можете. Эта переменная является клиентской стороной .. и недоступна, когда сервер передает страницу. Лучше всего вы можете сделать запрос Ajax на сервер, передающий 'id'. –

+2

Razor запускается на сервере, а JavaScript запускается в браузере. То есть, два разных компьютера. Вам нужно узнать немного больше о поведении клиента/сервера в Интернете ... – Stoive

+0

Спасибо. Честно говоря, я этого не знал. Ха хорошо знать. Мне придется переосмыслить проблему и придумать другой подход для решения. :) – Ciwan

ответ

3

Проще говоря, вы не сможете, код JavaScript будет выполняться в браузере, где, как C#/Бритва будет исполняемой на сервере. Это означает, что результат вашего фрагмента Razor будет сгенерирован до того, как ответ будет отправлен в браузер.

Смежные вопросы