Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery JavaScript运行时错误:语法错误,无法识别的表达式0x800a139e_Jquery_.net_Ajax_Model View Controller_Actionlink - Fatal编程技术网

Jquery JavaScript运行时错误:语法错误,无法识别的表达式0x800a139e

Jquery JavaScript运行时错误:语法错误,无法识别的表达式0x800a139e,jquery,.net,ajax,model-view-controller,actionlink,Jquery,.net,Ajax,Model View Controller,Actionlink,我在MVC5应用程序中遇到了这种奇怪的行为 我有一些Ajax.ActionLink的视图,它们在单击事件时加载相应的局部视图 @Ajax.ActionLink("Some text here", "_ActionName", "ControllerName", new { param = Model.Id }, ajaxOptions: new AjaxOptions { UpdateTargetId = "partialViewContainer", InsertionMode = Inser

我在MVC5应用程序中遇到了这种奇怪的行为

我有一些Ajax.ActionLink的视图,它们在单击事件时加载相应的局部视图

@Ajax.ActionLink("Some text here", "_ActionName", "ControllerName", new { param = Model.Id }, ajaxOptions: new AjaxOptions { UpdateTargetId = "partialViewContainer", InsertionMode = InsertionMode.Replace, HttpMethod = "GET" }, htmlAttributes: new { @id = "btn" })
这将成功加载由ControllerName中的_ActionName(int param)返回的部分视图。。然而,在Chrome的控制台中,它抛出了一个异常
未捕获错误:语法错误,无法识别的表达式:/ControllerName/\u ActionName?param=12

所以问题在于
/ControllerName/\u ActionName?param=12
表达式

IE(所有版本)抛出相同的异常,但会弹出一个恼人的弹出窗口

VisualStudio被配置为中断所有JavaScript错误,所以我猜这是意料之中的。。但是我不明白为什么jQuery会抛出这个异常。。。它不喜欢Razor引擎生成的表达式。一些帖子建议降级到1.xjQuery版本,但这没有帮助

我有其他MVC应用程序,它们采用类似的方法通过Ajax加载部分视图。ActionLinks以前从未遇到过这个问题

其他信息:

我正在使用Visual Studio 2015 Pro

项目中使用的库:

  • jquery-2.2.1
  • 引导3.6
  • jquery.unobtrusive-ajax
如果有什么我可以提供更好的理解,请让我知道。提前谢谢

编辑

我尝试降级到jQuery1.7.2,但我不再得到异常。 这是因为


在1.9之前,如果字符串中的任何位置都有HTML标记,则该字符串将被视为HTML字符串。这有可能导致无意中执行代码并拒绝有效的选择器字符串。从1.9开始,如果字符串以小于(“开头,但未使用@Ajax.ActionLink结尾,则仅将其视为HTML。而使用@FilixMogilevsky建议的纯jQuery Ajax调用

现在我有

<a href="" data="@Url.Action("_ActionName", "ControllerName", routeValues: new {param = Model.Id})" class="tabLinks">Some text here...</a>
<div id ="divPartialView">
</div>

为什么不使用纯jQuery进行ajax调用呢?相反,您使用的是一个抽象来生成此调用。执行类似于$.post('controller/action',{id:id},function(data){})的操作;我可以这么做,但它太笨拙了……我不明白的是,我以前也用过类似的方法,从来没有处理过这种情况……@FilixMogilevsky最终按照你的建议做了……我个人不喜欢这种方法,但它很管用。谢谢你花时间发表评论!:)干杯!它帮了我的忙。:)
$('.tabLinks').on('click', function() {    
    var url = $(this).attr('data');
    $.get(url, function(data) {
        $('#divPartialView').html(data);
    });
});