2015-06-08 2 views
-3

я следующий кодКак я могу переместить переменную из javascript в C#?

function insertDataToSurface(i) { 

    $("[name=[" + i + "].Height").val('@Model.Sides.SingleOrDefault(a => a.Name == "А").Surfaces.ElementAt(i))'); 

} 

ошибка

не удается разрешить символ «я»

+1

Razor - это код на стороне сервера - его разобрал на сервере до его отправки клиенту. Переменная javascript ('i') даже не существует в этой точке. –

+0

Вы не можете смешивать переменные цикла javascript с синтаксисом бритвы. Бритва в представлении обрабатывается до того, как страница будет отправлена ​​клиенту. Javascript обрабатывается только на стороне клиента (после того, как страница покинула сервер). Вот почему вы получаете плохие символы, когда .NET пытается отобразить представление. – Tommy

ответ

2

Вы определяете JavaScript функцию, которая принимает параметр i, то вы пытаетесь использовать его внутри C# код @Model.Sides.SingleOrDefault(a => a.Name == "А").Surfaces.ElementAt(i)). Для того чтобы эта последняя часть кода была действительной, i должен существовать на сервере, а не как параметр для клиентской функции.

Предполагая, что выбор действительно должен иметь место на клиенте, у вас есть несколько основных вариантов:

  1. Отправить все Surfaces по клиенту и использовать i внутри функции, чтобы выбрать нужный элемент что данные,
  2. Попросите JavaScript вернуться к серверу, запросив частичный вид, содержащий данные, указав в качестве параметра URL-адрес i.
Смежные вопросы