Mih*_*abo 19 javascript ajax jquery asp.net-mvc-3
我查看了之前发布的jQuery/MVC问题,但没有找到可行的答案.
我有以下JavaScript代码:
$.ajax({
type: "POST",
url: '@Url.Action("Search","Controller")',
data: "{queryString:'" + searchVal + "'}",
contentType: "application/json; charset=utf-8",
dataType: "html",
success: function (data) {
alert("here" + data.d.toString());
}
});
Run Code Online (Sandbox Code Playgroud)
在调用Url时,帖子看起来像:
NetworkError: 500 Internal Server Error - <a href="http://localhost/Web/Navigation/@Url.Action(%22Search%22,%22Chat%22)"></a>
Run Code Online (Sandbox Code Playgroud)
有人可以向我解释为什么它会像这样(它背后的逻辑)返回它并为我提供一个有效的解决方案.提前致谢!
PS:附加信息:%22是<<">>字符的URL编码参考
Rob*_*ett 56
为了使这个工作,Javascript必须放在Razor视图中以便该行
@Url.Action("Action","Controller")
Run Code Online (Sandbox Code Playgroud)
被Razor解析并取代了真正的价值.
如果您不想将Javascript移动到View中,可以查看在视图中创建设置对象,然后从Javascript文件中引用它.
例如
var MyAppUrlSettings = {
MyUsefulUrl : '@Url.Action("Action","Controller")'
}
Run Code Online (Sandbox Code Playgroud)
并在您的.js文件中
$.ajax({
type: "POST",
url: MyAppUrlSettings.MyUsefulUrl,
data: "{queryString:'" + searchVal + "'}",
contentType: "application/json; charset=utf-8",
dataType: "html",
success: function (data) {
alert("here" + data.d.toString());
});
Run Code Online (Sandbox Code Playgroud)
或者在HtmlHelpers中查看框架内置的Ajax方法,这样你就可以实现相同的功能而不用JS代码"污染"你的视图.
Yor*_*rgo 10
您在代码示例中有类型错误.你以后忘记了卷发success
$.ajax({
type: "POST",
url: '@Url.Action("Search","Controller")',
data: "{queryString:'" + searchVal + "'}",
contentType: "application/json; charset=utf-8",
dataType: "html",
success: function (data) {
alert("here" + data.d.toString());
}
})
Run Code Online (Sandbox Code Playgroud)
;
在不获取视图的情况下执行此操作的好方法可能是:
$.ajax({
type: "POST",
url: '/Controller/Search',
data: { queryString: searchVal },
success: function (data) {
alert("here" + data.d.toString());
}
});
Run Code Online (Sandbox Code Playgroud)
这将尝试POST到URL:
" http://域/控制器/搜索(这是您要使用的操作的正确URL)"
| 归档时间: |
|
| 查看次数: |
126670 次 |
| 最近记录: |