尽管在javascript中没有丢失')',但是参数列表之后没有捕获SyntaxError:missing)

时间:2015-07-13 17:55:21

标签: javascript asp.net-mvc razor

为什么我的按钮点击调用此功能时会收到此错误?

function ShowFaultMessage(message) {

    $.ajax({
        url: '/Home/Message/',
        data: JSON.stringify(message),
        type: 'POST',
        contentType: 'application/json; charset=utf-8',
        success: function(result) {
            var w = window.open("/Home/Message", "Fault Message", "width=400, height=400");
            $(w.document.body).html(result.responseText);
        }
    });
};

我已经查看了有关此错误的其他问题,但似乎没有适用于此处。我似乎有所有的括号和括号。

这是调用该功能的按钮。它似乎还可以:

 return new HtmlString(string.Format("<input type='submit' id='btnShowFault' onclick='ShowFaultMessage({0})' value='Fault' />", item.Fault.Message));

2 个答案:

答案 0 :(得分:0)

我需要在函数调用的参数中为按钮构建HTMLString时加上双引号,如下所示:

AllowOverride All

答案 1 :(得分:0)

是的,在将模型值传递给javascript函数时,您需要双引号或单引号将其视为字符串值而不是javascript值。在jquery上使用它或附加模型值时,情况也是如此。

var test = "alert_container";
foreach (var item in Model.ErrorLists)
       {
           <script>
               jsfunction("@item.prop");

                 or

               $('#@test').append('<div class="alert alert-danger alert-dismissable fade in">' +
                                            '<a href="#" class="close" data-dismiss="alert" aria-label="close">&times;</a>' +
                                            '<strong>Error:</strong> @item.ErrorMessage </div>');
           </script>



       }