我遇到以下JQuery脚本的问题
$('#extra_data').append('<div id="tabs-' + (tab_length + 1) + '"></div>');
$.get(url, function(data) {
$('#tabs-' + (tab_length + 1)).html(data);
});
我的麻烦是$ .get(..)操作不会返回任何结果 - 尽管使用firebug时它会按预期显示ajax调用。
任何线索?
感谢。
答案 0 :(得分:1)
<强>控制器强>
<HttpPost()> _
Function GetPartialView() As ActionResult
If (Request.IsAjaxRequest()) Then
Return View("PVTest")
Else
Return View()
End If
End Function
如果它是Ajax,我已经过滤了请求。您甚至可以将对象传递给局部视图。
的jQuery
<script type="text/javascript">
$(document).ready(function() {
$.ajax({
type: 'POST',
url: 'Home/GetPartialView',
data: {},
dataType: 'json',
beforeSend: function(XMLHttpRequest) {
},
complete: function(XMLHttpRequest, textStatus) {
$('#extra_data').append(XMLHttpRequest.responseText);
}
});
});
</script>
部分视图(PVTest.ascx)
<%@ Control Language="VB" Inherits="System.Web.Mvc.ViewUserControl" %>
<div id="01">
Hello World
</div>
答案 1 :(得分:0)
尝试加载方法:
$( '#extra_data')追加( '');
$('#tabs-'+(tab_length + 1))。load(url)
答案 2 :(得分:0)
我认为你需要在ASP.NET MVC中使用Post和[HttpPost],我认为有一个安全性 与GET相关的问题。
我似乎只使用Post操作并记得看到有关安全性的内容。 会看看我是否可以验证......
增加:
答案 3 :(得分:0)
我会使用POST,正如Mark建议的那样:
$.ajax({
type: 'POST',
url: url,
data: { },
dataType: 'json',
beforeSend: function(XMLHttpRequest) {
},
complete: function(XMLHttpRequest, textStatus) {
var Response = $.parseJSON(XMLHttpRequest.responseText);
}
});
Response应包含JSON流。您可以将它附加到您的元素。
控制器应该做这样的事情:
<HttpPost()> _
Function DoSomething() As ActionResult
Return (Json(myObject, JsonRequestBehavior.DenyGet))
End Function