ASP.NET MVC jQuery 自动完成与页面中包含的脚本中的 url.action 助手
Posted
技术标签:
【中文标题】ASP.NET MVC jQuery 自动完成与页面中包含的脚本中的 url.action 助手【英文标题】:ASP.NET MVC jQuery autocomplete with url.action helper in a script included in a page 【发布时间】:2011-02-02 22:43:51 【问题描述】:我一直在构建我的第一个 ASP.NET MVC Web 应用程序。我一直在很多地方使用 jQuery 自动完成小部件,例如:
<head>
$("#model").autocomplete( source: '<%= Url.Action("Model", "AutoComplete") %>' );
</head>
问题是我通过我的网络应用程序在许多不同的地方都有这个 jQuery 代码。所以我想我会创建一个单独的 javascript 脚本 (script.js),我可以在其中放置此代码,然后将其包含在母版页中。然后我可以将所有这些重复的代码放在那个脚本中,然后在我需要的地方调用它们。所以我做了这个。我的代码如下所示: 在 site.js 脚本中,我放置了这个函数:
function doAutoComplete()
$("#model").autocomplete( source: '<%= Url.Action("Model", "AutoComplete") %>' );
在我的页面上:
<head>
<script src="../../Scripts/jquery-1.4.1.min.js" type="text/javascript"></script>
<script src="../../Scripts/site.js" type="text/javascript"></script>
<script type="text/javascript">
doAutoComplete();
</script>
</head>
但是当我这样做时,我得到一个 Invalid Argument 异常并且自动完成不起作用。我究竟做错了什么?有什么想法吗?我需要向 doAutoComplete 函数传递一些东西吗?
【问题讨论】:
【参考方案1】:
解决方案:将 URL 作为参数传递给您的 javascript 函数。
<script>
doAutoComplete('<%= Url.Action("Model", "AutoComplete") %>');
</script>
function doAutoComplete(url)
$("#model").autocomplete( source: url );
【讨论】:
【参考方案2】:您需要将函数调用放在脚本块中,并确保在您的 site.js 之前加载 jquery ...
<head>
<script src='path/to/jquery.js'></script>
<script src="../../Scripts/site.js" type="text/javascript"></script>
<script>
doAutoComplete();
</script>
</head>
编辑:
也许在函数被发送到浏览器之前,'' 标签没有在服务器端进行评估?这是一篇关于此的文章:http://www.west-wind.com/weblog/posts/252178.aspx
下面是这篇文章的引述:
如果需要也有问题 访问 [ASP.NET] 中的变量 .js 文件 - 你不能嵌入脚本 标记到 .js 文件中,因此得到一个 将动态值转换为静态文件是 有问题的
【讨论】:
对不起,当我试图简化我的问题的代码时,我拿出了太多东西。该调用位于脚本块中,并且 jquery 在 site.js 之前加载。我已经编辑了这个问题……谢谢你让我保持正确! :) 我不知道这是否是它与 asp.net 的工作方式(我是一个 php 人),但如果我想在服务器端评估 .js 文件中的某些内容,我有给文件一个 .php 扩展名。我将编辑我的答案以解释更多...以上是关于ASP.NET MVC jQuery 自动完成与页面中包含的脚本中的 url.action 助手的主要内容,如果未能解决你的问题,请参考以下文章
ASP.NET MVC jQuery 自动完成与页面中包含的脚本中的 url.action 助手
在asp.net mvc中删除数据成功后重新排序自动编号列JQuery Datatable
csharp 使用Typeahead与Asp.net MVC进行自动完成
ASP.NET Core MVC 自动完成部分视图不显示结果