javascript - 如何进行ajax调用来获取包含javascript的部分 View ?

标签 javascript jquery ajax asp.net-mvc-3 asp.net-mvc-4

我正在尝试进行 ajax 调用来获取数据并修改 DOM。

这是我的 Controller /操作,看起来像

   [HttpGet]
public ActionResult Index(int id)
{
// some code
return PartialView(Custom Object);
}
here is my Index View looks like

@Model CustomObject
    @foreach(loop thru Model)
    {
// add some other elements
}
if(Model.Count==0){
<script>some script</script>
}else{
<script>variable = '<div></div>'</script>
}

这是主视图代码

<script>var variable ='';</script>
<script>$('element').html(variable)</script>
<tbody id="tbodyId">
@RenderAction("Index");
<tbody>

这是我的 Ajax 调用。我试图做

function test(id){
$.ajax({
type:'Get',
url:'/Home/Index?id='+id,
datatype:'html'
})
.done(function(data){
$('#tbodyId').html(data);
});
}

我的问题是来自上面的 ajax 调用,它没有从部分 View 中附加脚本元素。

我从 javascript 方面尝试了不同的方法。但是,我不确定我这样做是否正确。因此,我需要来自线索的一些建议。

这是我尝试过的另一种方法。但运气不好

var scriptElement = document.createElement('script');
            scriptElement.innerHTML = $('#tbodyId').last().html();
            document.getElementById('tbodyId').appendChild(scriptElement);

如有任何帮助,我们将不胜感激。谢谢!!

最佳答案

尝试

var scriptElement = document.createElement('script');
scriptElement.textContent = $('#tbodyId').last().html();
// remove `#` from selector
document.getElementById('tbodyId').appendChild(scriptElement);

关于javascript - 如何进行ajax调用来获取包含javascript的部分 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32142179/

相关文章:

javascript - Ajax 显示成功,无需在 Internet Explorer 中提交数据

javascript - 当我在分派(dispatch)后更新 vue 组件中的状态时,防止状态更新

javascript - Jquery 从被检查的 jquery 对象集合中选择

jQuery调试: how do I inspect the attached functions?

javascript - 添加 .done() 回调到自定义函数

Javascript - Jquery/文本框,提交在模糊时消失

javascript - 为什么我的函数调用应该由 setTimeout 调度立即执行?

jquery - Twitter bootstrap - 为选项卡式导航添加动画/过渡效果

javascript - onChange JavaScript 为 sql 查询

javascript - AJAX POST 请求后未加载第二个 JSP 页面