F-ES Sitecore
Это ошибка javascript, и javascript запускает то, что отправляется в браузер (а не то, что находится в вашем файле cshtml), поэтому посмотрите на источник страницы.
var path = '@Url.Action("index","Survey")?id='
+ @Model.MyGuid+'&languageName=' +selectedValue;
alert(path.val());
Все вышесказанное будет выглядеть примерно так
var path = '/Survey/index?id='
+ {6AAE15E3-E702-4251-A6F1-2A27EBBAA4A0}+'&languageName=' +selectedValue;
alert(path.val());
Является ли это допустимым javascript? Нет. Когда он добирается до "+ { " , он думает, что {- это кодовый блок. Теперь посмотрите на ваш рабочий пример
var t = "@Url.Action("index","Survey")?languageName="
+ selectedValue +"&id=@Model.MyGuid";
Посмотрите на источник, и он будет похож
var t = "/Survey/index?languageName="
+ selectedValue +"&id={6AAE15E3-E702-4251-A6F1-2A27EBBAA4A0}";
Это действительно так? Да. "{ } "Находится внутри строкового блока (он имеет кавычки вокруг него), поэтому он знает, что это литеральная строка, а не кодовый блок.
Возможно, это не конкретная проблема, поскольку мы не знаем, как выглядит MyGuid, но она будет связана с той же самой корневой проблемой.
F-ES Sitecore
Как я уже сказал, тот факт, что у вас есть GUID вне цитаты, все еще остается проблемой. Это может выглядеть как присвоение переменной в вашем файле cshtml, но вы должны понимать, что это не присвоение переменной, а просто генерация js для визуализации и выполнения на клиенте.
Richard Deeming
Любой:
var path = '@Url.Action("index", "Survey")?id=@Model.MyGuid&languageName=' + encodeURIComponent(selectedValue);
Или:
var path = '@Url.Action("index", "Survey", new { id = Model.MyGuid })&languageName=' + encodeURIComponent(selectedValue);
Member 12658724
синтаксический анализ содержимого метаэлемента: ';' не является допустимым разделителем пар ключ-значение. Пожалуйста, используйте вместо этого ','