ASP.NET MVC 运行时 Javascript 没有错误代码的语法错误

ASP.NET MVC Runtime Javascript Syntax Error without error code

存在 Javascript 语法错误

表单元素:

@Html.DropDownListFor(model => model.UNIT, 
    new SelectList(ViewBag.UnitList, "Value", "Text"), 
    "-- Select a Unit --", 
    new {onchange = "showSelectedValue" })

Javascript:

function showSelectedValue() {
           alert('Selected: ' + @Model.UNIT); 
           // Syntax error underlines the closing parentethesis of the alert function 
        }

我想检查 UNIT 正在使用函数 showSelectedValue

选择什么

Razor 执行服务器端,javascript 执行客户端,因此您不能真正将它们混合在一起;您的代码会将 @Model.UNITinitial 值作为字符串文字放入脚本中,看起来像 alert('Selected: ' + Whatever UNIT is);,这是一个语法错误,因为 Whatever UNIT is 未包含在引号中。

最简单的方法是将 select 作为参数传递给 onchange 函数。

@Html.DropDownListFor(model => model.UNIT, 
    new SelectList(ViewBag.UnitList, "Value", "Text"), 
    "-- Select a Unit --", 
    new {onchange = "showSelectedValue(this)" })

.

function showSelectedValue(ddList) {
       alert('Selected: ' + ddList.value); 
}

这可能有帮助:

@Html.DropDownListFor(model => model.UNIT
    , new SelectList(ViewBag.UnitList, "Value", "Text")
    , "-- Select a Unit --"
    , new { @id = "ddUnit" });

脚本:

$(document).ready(function () {
        $("#ddUnit").change(function () {
            alert($(this).val());
        });
    });

如果您想直接获取值,请在您的脚本中使用:

var value = $("#ddUnit").val();