Предыстория: чтобы указать правильный маршрут для jqGrid, который я показываю на моей странице ASP.NET MVC 3, я делаю что-то вроде этого:
$('#jqgFlavors').jqGrid({
url: '@Url.Action("FlavorData", "IceCream")',
etc...
, и при запуске будет создан правильный маршрут.локально вне Visual Studio (где вещи живут в чем-то вроде "http://localhost:90125/IceCream"
или на развернутом сайте, где вещи живут в чем-то вроде "http://thehostsite/mydeployedsitename/IceCream"
.
Отлично. Теперь у меня проблема в том, что я используюonSelectRow
в сетке, чтобы выполнить мастер / детализацию на основе значения идентификатора аромата выбранной строки. Сначала я попытался сделать это, чтобы просто получить правильный маршрут:
onSelectRow: function(theRow){
$('#flavorDetails').load('@Url.Action("Details","IceCream", new {id = 42)})');
}
, чтобы я мог передатьзначение 42 в качестве параметра 'id' в действии Details
контроллера IceCream
. И это прекрасно работает, но, конечно, я не хочу жестко кодировать значение 42, скорее извлеките идентификатор аромата из сеткиТаким образом, я попытался сослаться на flavourID, но, похоже, не смог получить правильный синтаксис:
onSelectRow: function(theRow){
var grid = jQuery('#jqgFlavors');
var flavorID = grid.jqGrid('getCell', theRow, 'FlavorID');
$('#flavorDetails').load('@Url.Action("Details","IceCream", new {id = flavorID)})');
}
Я уверен, что вы получите то, что я собираюсь здесь - ссылаясь на значение flavid, которое я извлекаюиз сетки.Но я получаю ошибку компиляции:
В текущем контексте не существует имени "flavourID".
Я подозреваю, что это действительно просто.Как правильно ссылаться на эту переменную?