2012-04-18 47 views
2

我需要通过此DropDownList的onchange事件调用jquery函数。我用google搜索了一下,并且找不到为什么我的剃刀语法错了。请帮助?剃刀语法不正确? jQuery的功能Onchange的Html.DropDownList

@Html.DropDownListFor(model => model.Type, (List<SelectListItem>)Type, new { @onchange = "reloadDial(" + @Model.AppID, @Model.LoginID, @Model, @ViewBag.Edit + ")"})  

错误在最后一部分。 @ ViewBag.Edit +“)”})错误是“无效的匿名类型声明器。匿名类型成员必须用成员赋值,简单名称或成员访问权限声明。

回答

5

看起来问题是你想连接javascriptfunction的一些参数。您的参数不在string中,因此编译器认为您正在尝试向匿名object添加更多properties

所以......

"reloadDial(" + @Model.AppID, @Model.LoginID, @Model, @ViewBag.Edit + ")" 

应该是:

"reloadDial('" + @Model.AppID + "','" + @Model.LoginID + "','" + @Model + '",'" + @ViewBag.Edit + ")" 
+0

男孩做的,我觉得愚蠢。 – 2012-04-18 03:13:33

+2

另外,如果你有'@ onchange',你只需要'onchange'。您有时在这样的匿名声明中看到'@ class'的原因是'class'是c#中的一个关键字,因此如果没有用'@'作为前缀,就不能使用它。 – StanK 2012-04-18 03:29:01