剃刀语法错误?jquery函数onchange的Html.DropDownList

Mat*_*art 2 asp.net razor asp.net-mvc-3

我需要通过此DropDownList的onchange事件调用jquery函数.我用谷歌搜索和谷歌搜索,无法找出为什么我的剃刀语法错误.请帮忙?

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

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

Gab*_*abe 6

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

所以...

"reloadDial(" + @Model.AppID, @Model.LoginID, @Model, @ViewBag.Edit + ")"
Run Code Online (Sandbox Code Playgroud)

应该:

"reloadDial('" + @Model.AppID + "','" + @Model.LoginID + "','" +  @Model + '",'" + @ViewBag.Edit + ")"
Run Code Online (Sandbox Code Playgroud)

  • 此外,你有`@ onchange`,你只需要`onchange`.你有时会在这样的匿名声明中看到`@ class`的原因是`class`是c#中的一个关键字,因此如果没有用`@`作为前缀,就不能使用它. (2认同)